Systems and Methods for Providing Network Connectivity and Remote Monitoring, Optimization, and Control of Pool/Spa Equipment

ABSTRACT

Systems and methods for providing network connectivity and remote monitoring, optimization, and control of pool/spa equipment are provided. “Internet-of-Things” (IoT) functionality is provided for pool and spa equipment in a flexible and cost-effective manner. Network connectivity and remote monitoring/control of pool and spa equipment is provided by various components such as a network communication and local control subsystem installed in pool/spa equipment, and other components. Also disclosed are various control processes (“pool logic”) which can be embodied as software code installed in any of the various embodiments of the present disclosure.

RELATED APPLICATIONS

The present application is a continuation of, and claims priority to,U.S. patent application Ser. No. 16/905,661 filed on Jun. 18, 2020,which claims the benefit of U.S. Provisional Application No. 62/862,982filed on Jun. 18, 2019 and is a continuation-in-part of U.S. patentapplication Ser. No. 15/957,482 filed on Apr. 19, 2018, which is acontinuation-in-part of U.S. patent application Ser. No. 15/886,576filed on Feb. 1, 2018, which is a continuation-in-part of U.S. patentapplication Ser. No. 15/886,171 filed on Feb. 1, 2018, which is acontinuation-in-part of U.S. patent application Ser. No. 15/413,199filed on Jan. 23, 2017, which claims the benefit of U.S. ProvisionalApplication No. 62/286,272 filed on Jan. 22, 2016, U.S. ProvisionalApplication No. 62/310,510 filed on Mar. 18, 2016, U.S. ProvisionalApplication No. 62/381,903 filed on Aug. 31, 2016, U.S. ProvisionalApplication No. 62/412,504 filed on Oct. 25, 2016, and U.S. ProvisionalApplication No. 62/414,545 filed on Oct. 28, 2016. The presentapplication is also a continuation-in-part of, and claims priority to,U.S. patent application Ser. No. 15/957,482 filed on Apr. 19, 2018,which is a continuation-in-part of U.S. patent application Ser. No.15/886,576 filed on Feb. 1, 2018, which is a continuation-in-part ofU.S. patent application Ser. No. 15/886,171 filed on Feb. 1, 2018, whichis a continuation-in-part of U.S. patent application Ser. No. 15/413,199filed on Jan. 23, 2017, which claims the benefit of U.S. ProvisionalApplication No. 62/286,272 filed on Jan. 22, 2016, U.S. ProvisionalApplication No. 62/310,510 filed on Mar. 18, 2016, U.S. ProvisionalApplication No. 62/381,903 filed on Aug. 31, 2016, U.S. ProvisionalApplication No. 62/412,504 filed on Oct. 25, 2016, and U.S. ProvisionalApplication No. 62/414,545 filed on Oct. 28, 2016. The presentapplication is also a continuation-in-part of, and claims priority to,U.S. patent application Ser. No. 15/413,199 filed on Jan. 23, 2017,which claims the benefit of U.S. Provisional Application No. 62/286,272filed on Jan. 22, 2016, U.S. Provisional Application No. 62/310,510filed on Mar. 18, 2016, U.S. Provisional Application No. 62/381,903filed on Aug. 31, 2016, U.S. Provisional Application No. 62/412,504filed on Oct. 25, 2016, and U.S. Provisional Application No. 62/414,545filed on Oct. 28, 2016. The entire disclosures of the aforementionedapplications are all expressly incorporated by reference herein.

BACKGROUND OF THE INVENTION Field of the Invention

The present disclosure relates to systems and methods for providingnetwork connectivity and remote monitoring, optimization and control ofpool/spa equipment.

Related Art

Swimming pool equipment is conventionally controlled by an electronicpool controller at an equipment pad. Power is supplied from thecontroller and electrical subpanel to the pool equipment through anelectrical conduit (e.g., hardwire). Alternatively, swimming poolequipment can be controlled by electrical circuit breakers in a subpanelat an equipment pad. Power is supplied from the subpanel to the poolequipment through an electrical conduit (e.g., hardwire). Without anelectronic pool controller, any time-based control is typically anelectro-mechanical clock wired in series between the subpanel and thepool equipment, thereby breaking one or both legs of the power supply tothe pool equipment. To monitor or maintain conditions of pool equipment,the pool, pool water, or the pool environment, sensors or other datacollection means typically reside at the equipment pad or the pool.

Remote control of the pool and related equipment typically requireshard-wired communication between the pool controller (at the pad) andpool equipment, as well as wired or wireless communication between thepool controller and user interface. More recent remote control systemsfeature communication between the controller at the pad and a cloudserver (e.g., via a home router), as well as communication between theuser interface and the cloud server by cell or WiFi router.

Adding control features to an existing pool and equipment pad istypically costly because of the required electrical competence necessaryto install new conduits to provide power from the subpanel to thecontroller, and from the controller to the pool equipment. Further, poolmonitoring and maintenance can be confusing and time consuming for poolowners, which often leads to the employment of pool servicers. The lackof connectivity and subsequent lack of understanding of the status andcondition of the pool and pool equipment requires costly and sometimesunnecessary visits by pool professionals.

In the pool and spa field, heating systems are commonly used to controlwater temperature. Such systems generally have one or more inlet pipesfor receiving water to be heated, and one or more outlet pipes fordelivering heated water from the heating system back to the pool/spa.While heating systems are commonly installed and used in pool and spaenvironments, there are a variety of problems that can arise inconnection with the installation and operation of such devices.

For example, in some instances, the piping to and from the heatingsystem can be incorrectly installed (e.g., in a reverse fashion). Thiscauses the water flowing from the pump to incorrectly enter the heatingsystem's “outlet.” As a result, a variety of problems can occur, such asthe inlet water temperature sensor reading the temperature of the waterafter being heated, and incorrectly concluding that the water hasreached the desired temperature. This leads to the heating systemrepeatedly experiencing a short cycle. Backward water flow also rendersother safety sensors and pressure-activated bypass loops ineffective.Further, such an improper installation scenario can be difficult todiagnose in the field.

It is also important to ensure that proper flow rates are maintained bypool and spa heating systems during operation. Heating systems commonlyuse pressure switches to measure water pressure and detect if the filterpump is running. This is a way of protecting the heating system fromdamage due to heating when the water flow is too low. However, pressureswitches do not measure water flow rate directly, and can incorrectlyindicate water flow. This can lead to damaged or destroyed heatingsystems.

Still further, pool and spa heating systems that utilize heat pumps canalso be susceptible to a variety of malfunctions. As the outdoor airflows across the heat exchanger, heat is transferred from the air intothe refrigerant flowing inside the heat exchanger. This results in theair being cooled as it passes through the heat exchanger. As the air iscooled below its dew point, water separates from the air, and moistureaccumulates on the heat exchanger. This water typically drains off ofthe heat exchanger without harm to the heat exchanger. However, if theheat exchanger surface temperature is below the freezing point of water,the moisture can freeze. This is a common issue with heat pumps of alltypes, not just pool heating systems.

Another potential malfunction of heat exchangers relates to frostconditions. Typically, heat pumps are equipped with a control systemthat detects the frosting conditions in the heat exchanger andautomatically executes a defrost cycle. Defrost cycles typically involveeither deactivating the heat pump and allowing the heat exchanger tothaw out due to ambient air temperatures, or engaging a refrigerantreversing valve to heat the heat exchanger surface to thaw out the heatexchanger. A temperature sensor is usually attached to a refrigeranttube near the heat exchanger. The temperature sensor is used to measurethe refrigerant temperature and identify if a defrost cycle isnecessary. The duration of the defrost cycle might be a fixed timeperiod, can continue until the measured refrigerant temperature is abovea preset threshold, or a combination of both.

The aforementioned approach presents a problem because refrigeranttemperatures can drop and cause frosting due to malfunctions of the poolheater. Some of these malfunctions include a low refrigerant pressure, alow air flow across the heat exchanger, and a reduced heat transfercaused by buildup of dirt or other debris on the heat exchanger. Thesemalfunctions can cause the low temperature condition, and be incorrectlytreated as a “normal” amount of frost that can be remedied by executinga defrost cycle. In addition, refrigerant reversing valves in poolheating systems can be used to allow the user to either heat or cool theswimming pool, and they can be actuated in response to anautomatically-executed defrosting routine. These reversing valves areactuated by a solenoid, and can sometimes be stuck in one position orthe other.

Accordingly, what is needed is a system and method to provide poolowners and pool servicers with enhanced control of, and connectivitybetween, pool equipment devices, which detects and diagnoses improperinstallation and malfunction conditions in the equipment devices, andwhich reduces hardware and/or installation costs.

SUMMARY OF THE INVENTION

The present disclosure relates to systems and methods for providingnetwork connectivity and remote monitoring, optimization, and control ofpool/spa equipment. “Internet-of-Things” functionality is provided forpool and spa equipment in a flexible and cost-effective manner, invarious embodiments. For example, in one embodiment, networkconnectivity and remote monitoring/control of pool and spa equipment isprovided by a network communication and local control subsysteminstalled in pool/spa equipment. In another embodiment, networkconnectivity and remote monitoring/control of pool and spa equipment isprovided by a pool/spa system controller interconnected with pool/spaequipment operating in conjunction with local and/or remote pool/spacontrol logic. In another embodiment, network connectivity and remotemonitoring and control of pool and spa equipment is provided by way of apool “hub” interconnected with pool/spa equipment operating inconjunction with remote pool/spa control logic. In yet anotherembodiment, network connectivity and remote monitoring and control ofpool and spa equipment is provided by way of a pool “translator”interconnected with pool/spa equipment operating in conjunction withlocal and/or remote pool/spa control logic. In still another embodiment,network connectivity and remote monitoring and control of pool and spaequipment is provided by way of a plurality of pool connectivity modulesthat communicate with pool/spa equipment, operating in conjunction withremote pool/spa control logic. In a further embodiment, networkconnectivity and remote monitoring and control of pool and spa equipmentis provided by way of wireless communications provided directly in thepool/spa equipment and operating in conjunction with remote pool/spacontrol logic. In yet another embodiment, network connectivity andremote monitoring and control of pool and spa equipment is provided byway of a reduced-size “hub” interconnected with pool/spa equipmentoperating in conjunction with remote pool/spa control logic. In stillanother embodiment, network connectivity and remote monitoring andcontrol of pool and spa equipment is provided by way of pool/spachlorination system and controller that is interconnected with pool/spaequipment operating in conjunction with remote pool/spa control logic.Also disclosed are various control processes (“pool logic”) which can beembodied as software code installed in any of the various embodiments ofthe present disclosure.

Communication between devices, the controller, the router, the cloud,and/or the user interfaces can use a number of technologies, where eachtechnology could provide an advantage in cost or reliability for eachcommunication segment. Data for managing the pool and pool equipment(e.g., relating to wind, time, temperature, humidity to manage heating,water features, skimmer operation, approaching storms, sunrise, sunset,etc.) could be gathered from the cloud, in addition to or instead ofdata gathered through sensors and datacom cables at the pool or pad.Sensors dedicated to specific pool equipment (e.g., pressure sensors,flow sensors or temp sensors in the heater used to manage pump speed,control valve positions, etc.) could share data with the controller tomanage other pool equipment (e.g., to optimize performance), rather thanrequiring dedicated sensors for each device. Smart switches could beinstalled between an existing conduit and the subpanel or device by auser (e.g., pool owner or pool professional), because installation of anew hard conduit is unnecessary (reducing the need for an electrician),or smart switches could be integrated into pool or spa equipment. Forexample, a heater with an integrated smart switch could act as a hub forconnectivity to the home router.

In still further embodiments, the system of the present disclosureprovides a modular relay, a wiring hub, and/or a control module that canbe conveniently installed near pool/spa equipment, and which providesInternet-enabled remote control and connectivity of pool/spa componentswithout requiring installation of complete (e.g., pad-mounted) pool/spasystem controller. Conveniently, the modular relay, wiring hub, and/orcontrol module allow owners of existing pool/spa equipment who do notcurrently own a pool/spa control system to enjoy the benefits of such acontrol system without requiring the installation, equipment, andexpense associated with conventional pool/spa control systems.

In still further embodiments, the system of the present disclosureprovides advanced heating and cooling functionality and enhanceddiagnostics for pool/spa equipment via a plurality of sensors that canbe conveniently installed near or within pool/spa equipment, and whichprovides Internet-enabled remote control and connectivity of pool/spacomponents.

In other embodiments of the present disclosure, systems and methods areprovided for detecting and diagnosing improper installation andmalfunction conditions in pool and spa heating systems. In oneembodiment, the system includes a first temperature sensor whichmeasures a first temperature of water entering the heating system and asecond temperature sensor which measures a second temperature of waterexiting the heating system. The system further includes a controlsubsystem in communication with the first and second sensors, capable ofdetermining whether the first temperature is greater than the secondtemperature. When the first temperature is greater than the secondtemperature, the control subsystem generates a diagnostic report thatindicates that the heating system has been improperly installed.

In another embodiment, the systems and methods of the present disclosuredetect low water flow rates through a heating system based onmeasurements of inlet and outlet water temperatures. The system includesa first temperature sensor which measures a first temperature of waterentering the heating system and a second temperature sensor measuring asecond temperature of water exiting the heating system. The system alsoincludes a control subsystem in communication with the first and secondstemperature sensors, capable of determining a temperature rise bymeasuring a difference between the first temperature and the secondtemperature. The control subsystem further determines a maximum allowedtemperature rise value for the heating system and whether thetemperature rise is greater than the maximum allowed temperature rise.When the temperature rise is greater than the maximum allowedtemperature rise, the system generates a diagnostic report indicatingthat the heating system has a low water flow rate.

In still another embodiment, the systems and methods of the presentdisclosure can detect and diagnose a stuck reversing valve in arefrigeration system of pool and spa heating systems. The systemincludes a first temperature sensor measuring an ambient air temperatureand a second temperature sensor measuring a refrigerant temperature. Thesystem further includes a control subsystem in communication with theheating system. The control subsystem is capable of determining when therefrigerant temperature is less than a refrigerant threshold and whetherthe ambient temperature is less than or greater than an ambientthreshold. When the ambient temperature is greater than the ambientthreshold, the control subsystem transmits a diagnostic report anddeactivates the heating system. When the ambient temperature is lessthan the ambient threshold, the control subsystem executes a defrostcycle.

In yet another embodiment, the systems and methods of the presentdisclosure can detect and correct a stuck reversing valve in arefrigeration system of a heating system. The system includes a firsttemperature sensor measuring a first temperature of water entering aheater and a second temperature sensor measuring a second temperature ofwater exiting the heater. The system further includes a controlsubsystem in communication with the heating system. The controlsubsystem is capable of determining whether the heating system is in aheating mode or a cooling mode and determining when a reversing value isstuck. The reversing valve is stuck in the heating mode when the secondwater temperature is lower than the first water temperature and thereversing valve is stuck in the cooling mode when the second watertemperature is greater than the first water temperature. The controlsubsystem is further capable of cycling the reversing valve to unstickand enable the reversing valve to function properly.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing features of the disclosure will be apparent from thefollowing Detailed Description of the Invention, taken in connectionwith the accompanying drawings, in which:

FIG. 1 is a diagram illustrating the system of the present disclosure;

FIG. 2 is a block diagram illustrating components of the subsystems ofFIG. 1 ;

FIG. 3 is a diagram illustrating various types of control logic inaccordance with the present disclosure;

FIG. 4 is a diagram illustrating processing steps carried out by thesystem of FIGS. 1-2 ;

FIG. 5 is a diagram illustrating another embodiment of the presentdisclosure;

FIG. 6 is a flowchart illustrating processing steps carried out by thesystem of FIG. 5 ;

FIG. 7 is a diagram illustrating another embodiment of the system of thepresent disclosure;

FIG. 8 is a flowchart illustrating processing steps carried out by thesystem of FIG. 7 ;

FIG. 9 is a diagram illustrating another embodiment of the system of thepresent disclosure;

FIG. 10 is a flowchart showing processing steps carried out by thesystem of FIG. 9 ;

FIG. 11 is a diagram illustrating another embodiment of the system ofthe present disclosure;

FIG. 12 is a diagram illustrating processing steps carried out by thesystem of FIG. 11 ;

FIG. 13 is a diagram illustrating another embodiment of the system ofthe present disclosure;

FIG. 14 is a flowchart illustrating processing steps carried out by thesystem of FIG. 13 ;

FIG. 15 is a diagram illustrating another embodiment of the system ofthe present disclosure;

FIGS. 16A-16B are diagram illustrating another embodiment of the systemof the present disclosure;

FIG. 17 is a diagram illustrating another embodiment of the system ofthe present disclosure;

FIG. 18 is a diagram illustrating the pump control logic of FIG. 3 ;

FIGS. 19A-19AU are flowcharts illustrating processing steps of the pumpcontrol logic of FIG. 3 ;

FIG. 20 is a diagram illustrating chemistry automation control logic ofFIG. 3 ;

FIGS. 21A-21I are flowcharts illustrating processing steps of thechemistry automation control logic of FIG. 3 ;

FIG. 22 is a diagram illustrating the heater control logic of FIG. 3 ;

FIGS. 23A-23J are flowcharts illustrating processing steps of the heatercontrol logic of FIG. 3 ;

FIG. 24 is a diagram illustrating the lighting control logic of FIG. 3 ;

FIGS. 25A-25AB are flowcharts illustrating processing steps of thelighting control logic of FIG. 3 ;

FIG. 26 is a diagram illustrating the pool cleaner control logic of FIG.3 ;

FIGS. 27A-27O are flowcharts illustrating processing steps of the poolcleaner control logic of FIG. 3 ;

FIG. 28 is a diagram illustrating the valve actuator control logic ofFIG. 3 ;

FIGS. 29A-29I are flowcharts illustrating processing steps of the valveactuator control logic of FIG. 3 ;

FIG. 30 is a diagram illustrating water feature control logic of FIG. 3;

FIGS. 31A-31F are flowcharts illustrating processing steps of the waterfeature control logic of FIG. 3 ;

FIG. 32 is a diagram illustrating pool control logic of FIG. 3 ;

FIGS. 33A-33AH are flowcharts illustrating processing steps of the poolcontrol logic of FIG. 3 ;

FIGS. 34A-34J are diagrams illustrating another embodiment of the systemof the present disclosure;

FIG. 35 is a diagram illustrating another embodiment of the system ofthe present disclosure;

FIGS. 36-40 are diagrams illustrating further embodiments of the systemof the present disclosure;

FIG. 41 is a flowchart illustrating an installation method in accordancewith the present disclosure;

FIGS. 42A-42I are diagrams illustrating the installation method of FIG.41 ;

FIG. 43 is a diagram illustrating a recommendation system forrecommending upgrades in pool/spa equipment;

FIG. 44 is a flowchart illustrating processing steps carried out by thesystem of FIG. 43 for recommending upgrades in pool/spa equipment;

FIGS. 45-48 are user interface screens for generated by therecommendation system of FIG. 43 .

FIG. 49 is a diagram illustrating a monitoring and control system inaccordance with the present disclosure;

FIG. 50 is a diagram illustrating the system of FIG. 49 ;

FIG. 51 is a block diagram illustrating control logic of the system ofFIG. 49 ;

FIG. 52 is a flowchart illustrating processing steps carried out by thesystem of FIG. 49 ;

FIG. 53 is a flowchart illustrating processing steps carried out by thesystem of FIG. 49 ;

FIGS. 54A and 54B are graphical illustrations of heater cycles of thesystem of FIG. 49 ;

FIG. 55 is a flowchart illustrating processing steps carried out by thesystem of FIG. 49 ;

FIG. 56 is a flowchart illustrating processing steps carried out by thesystem of FIG. 49 ;

FIG. 57 is a flowchart illustrating processing steps carried out by thesystem of FIG. 49 ;

FIGS. 58-68 are user interface screens generated by the system of FIG.49 ;

FIG. 69 is a flowchart illustrating processing steps carried out by thesystem of FIG. 49 ;

FIG. 70 is a diagram illustrating a sensor hub of the system of FIG. 49;

FIGS. 71-72 are user interface screens generated by the system of FIG.49 ;

FIG. 73 is a block diagram illustrating components of an embodiment ofthe heating/cooling system of FIG. 1 ;

FIGS. 74A-D are flowcharts illustrating processing steps carried out bythe heating/cooling system of FIG. 73 ;

FIG. 75 is a block diagram illustrating components of an embodiment ofthe heating/cooling system of FIG. 1 ;

FIG. 76 is a flowchart illustrating processing steps carried out by theheating/cooling system of FIG. 75 ;

FIG. 77 is a block diagram illustrating components of an embodiment ofthe heating/cooling system of FIG. 1 ;

FIG. 78 is a flowchart illustrating processing steps carried out by theheating/cooling system of FIG. 77 ;

FIG. 79 is a block diagram illustrating components of an embodiment ofthe heating/cooling system of FIG. 1 ;

FIG. 80 is a flowchart illustrating processing steps carried out by theheating/cooling system of FIG. 79 ;

FIG. 81 is a block diagram illustrating components of an embodiment ofthe heating/cooling system of FIG. 1 ;

FIGS. 82-83 are user interface screens generated by the heating/coolingsystem of FIG. 81 ;

FIG. 84 is a block diagram illustrating a component schematic capable ofbeing implemented in an embodiment of the heating/cooling system of FIG.1 ;

FIG. 85 is a block diagram illustrating components of an embodiment ofthe heating/cooling system of FIG. 1 ;

FIG. 86 is a diagram illustrating an embodiment of the heating/coolingsystem of FIG. 1 ;

FIG. 87 is a flowchart illustrating process steps carried out by theembodiment of the system of FIG. 86 for detecting an improperlyinstalled heating system based on measurements of inlet and outlet watertemperature;

FIG. 88 is a flowchart illustrating process steps carried out by theembodiment of the system of FIG. 86 for detecting a low water flow ratethrough a heating system based on measurements of inlet and outlet watertemperature;

FIG. 89 is an illustration showing an embodiment of the heating/coolingsystem of FIG. 1 ;

FIG. 90 is a flowchart illustrating process steps carried out by theembodiment of the system of FIG. 89 for identifying frost conditions ina heating system; and

FIG. 91 is a flowchart illustrating process steps carried out by theembodiment of the system of FIG. 89 for detecting and correcting a stuckreversing valve in a refrigeration system of a heating system.

DETAILED DESCRIPTION OF THE INVENTION

The present disclosure relates to systems and methods for providingnetwork connectivity and remote monitoring, optimization and control ofpool/spa equipment, as discussed in detail below in connection withFIGS. 1-91 .

FIG. 1 is a diagram illustrating the system 10 of the presentdisclosure. The system 10 includes, but is not limited to, a pluralityof network communication and local control subsystems 12 a-12 h whichcould be installed in or connected to a plurality of pool and spaequipment 14 a-14 h, so as to provide network connectivity and remotemonitoring and control of the pool and spa equipment 14 a-14 h. Thesubsystems 12 a-12 h could communicate with each other over a network16, which could include, but is not limited to, the Internet.Importantly, the subsystems 12 a-12 h provide “Internet-of-Things”functionality for the plurality of pool and spa equipment 14 a-14 h. Itis noted that subsystems 12 a-12 h could further include a “big data”subsystem, subsystems for receiving input from manufacturers/factories,subsystems for receiving external data/input (e.g., data from theInternet), and subsystems for receiving input from customers. As will bediscussed in greater detail below, the subsystems 12 a-12 h couldinclude control logic for allowing each of the devices 14 a-14 h tointeract with each other (e.g., to exchange data and commands forcontrolling each other), as well as to be remotely controlled by anothersystem such as a remote server, a “cloud” based control system, a remotecomputer system, a smart device (e.g., smart phone, smart speaker, smartchip embedded in the body), etc., and combinations thereof as will bediscussed in greater detail below.

As can be seen, the pool and spa equipment 14 a-14 h could includevarious types of pool and spa equipment, such as a pump 14 a, aheating/cooling system 14 b, a sanitization system 14 c, a water featureor miscellaneous subsystem 14 d, a valve actuator 14 e, a pool/spacontrol system 14 f, a pool cleaner 14 g, and/or a lighting system 14 h.It is noted that, as described herein, the heating/cooling system 14 bmay also describe, or be described as, a heating system, heater, coolingsystem, cooler, or any combination thereof. Additionally, as can be seenin FIG. 1 , the subsystems 12 a-12 h could also communicate with one ormore servers 18, and/or with one or more smart devices 20 (e.g., phone,tablet, computer systems, etc.), via the network 16. Still further, anon-site control processor 19 could be in communication with the varioussystems shown in FIG. 1 . The on-site control processor 19 could be apool/spa control system installed at the location of a pool or spa, areduced-functionality pool/spa control system, or another type ofcontrol system. Examples of such systems will be described in detailbelow.

FIG. 2 is a block diagram illustrating components of the subsystems 12a-12 h in greater detail. As can be seen, a variety of subsystemcomponents could be provided for providing network connectivity for pooland spa equipment via a multitude of wired and wireless means. As notedabove, the subsystems 12 a-12 h could be installed in pool/spa equipment(e.g., within the physical housings of the equipment 14 a-14 h), orconnected thereto, to provide network connectivity to each device.Advantageously, the subsystems 12 a-12 h can be provided as“after-market” components that provide network connectivity and remotemonitoring and control for pool/spa equipment that does not ordinarilyinclude such connectivity. Importantly, the subsystems 12 a-12 h allowfor a wide variety of wired and wireless connections to the pool/spaequipment. For example, a smart telephone could directly connect withpool or spa equipment via a Bluetooth, WiFi, RF mesh (e.g., ZWave,Zigbee, Thread, Weave, etc.), or satellite connection, via thesubsystems 12 a-12 h. Moreover, a home computer could connect topool/spa equipment using a home WiFi network, via the subsystems 12 a-12h or by way of a wired Ethernet connection to the pool/spa equipment.Still further, a remote server or “cloud” platform could connect to thepool/spa equipment via the subsystems 12 a-12 h, to allow for remoteand/or web-based control.

A processor 22 provides local processing capability for each of thesubsystems 12 a-12 h. The processor 22 is in communication with a randomaccess memory 24, and one or more non-volatile memories 28. Thenon-volatile memory 28 could store one or more local control programs 30for providing local control of the pool or spa equipment in which thesubsystem is installed. A TCP/IP stack 26 is provided for allowing eachof the subsystems to obtain an Internet protocol address, and to provideInternet connectivity for each of the subsystems. The processor 22 couldcommunicate with a wired communication subsystem 36, a wirelesscommunication subsystem 34, a sensor interface subsystem 38, and anactuator interface subsystem 40 via a bus 32. The wired communicationsubsystem 36 could include an Ethernet transceiver 42, and a serialtransceiver 44. The serial transceiver could support one or moresuitable serial communication protocols, such as RS-485, RS-232, USB,etc. The wireless communication subsystem 34 could include a WiFitransceiver 46, a Bluetooth (or Bluetooth LE) transceiver 48, a cellulardata transceiver 50, a satellite transceiver 52, and infraredtransceiver 54, and a radiofrequency/RF mesh transceiver 56. Thecellular data transceiver 50 could support one or more cellular datacommunications protocols, such as 4G, LTE, 5G, etc. Theradiofrequency/RF mesh transceiver 56 could support one or more RF meshnetwork protocols, such as ZWave, Zigbee, Thread, Weave, etc. The sensorinterface subsystem 38 could include analog connection interfaces,digital connection interfaces, and one or more analog-to-digitalconverters 58. The actuator interface subsystem 40 could include analogconnection interfaces, digital connection interfaces, and one or moredigital-to-analog converters 60. The sensor interface subsystem allowsthe network communication and local control subsystem to obtaininformation from a wide variety of sensors associated with pool/spaequipment, as well as other types of sensors. The actuator interfacesubsystem 40 allows the network communication and local controlsubsystem to control one or more pieces of pool/spa equipment connectedto the subsystem. The wired and wireless communication subsystems 34, 36allow the network communication and local control subsystem to connectvia various wired and wireless communication means to the Internet. Thisallows a piece of pool or spa equipment to transmit operational andstatus information to one or more remote devices, as well as to beremotely controlled by such devices.

FIG. 3 is a diagram illustrating various types of control logic inaccordance with the present disclosure, for controlling various types ofpool and spa equipment. The control logic, indicated generally as poolcontrol logic 70, could be embodied as programmed instructions (softwarecode) stored on a non-transitory computer-readable medium, and couldinclude water feature control logic 72, valve actuator control logic 74,cleaner control logic 76, lighting control logic 78, heater controllogic 80, chemistry automation control logic 82, and pump control logic84. Such logic could be installed locally (e.g., in one or more of thesubsystems 12 a-12 h), on a remote server or computer system (e.g., inthe server 18 or the smart phone/computer system 20), in the “cloud,” orin any combination of such systems. The functions provided by the logic70-84 is described in greater detail below. As will be discussed ingreater detail below the various logic operations disclosed herein(including the operational instruction disclosed herein) could betrigged by (e.g., receive and a signal from) various sensors and/orinputs to the system, as needed. Such inputs could be periodicallymonitored by the pool control logic 70 of the system 10.

FIG. 4 is a diagram illustrating processing steps, indicated generallyat 90, carried out by the system of FIGS. 1-2 . It is noted that theterm “IoT devices” (shown in the drawings) refers to pool/spa equipmenthaving Internet-of-Things functionality provided in accordance with thepresent disclosure, such as the equipment 14 a-14 h of FIG. 1 .Beginning in step 92, the system monitors IoT devices for incomingoperational data. In step 94, a decision is made as to whether incomingoperational data has been received. If a negative determination has beenmade, control returns to step 92. Otherwise, step 96 occurs, wherein thesystem receives incoming operational data. In step 98, the systemprocesses instructions, operational data, and external data, discussedhereinbelow. Then, in step 100, the system optimizes operational setpoints. In step 102, the system transmits setpoints to one or moredevices (one or more of the pool/spa equipment 14 a-14 h) for usethereby.

In step 104, the system also monitors for incoming instructions. Adetermination is made in step 105 as to whether an incoming instructionhas been received. If a negative determination has been made, controlreturns to step 104. Otherwise, in step 106, the system receives one ormore incoming instructions. Then, control proceeds to step 98, discussedabove. Additionally, in step 107, the system also monitors for updatedexternal data (e.g., web data). In step 108, a decision has been made asto whether updated external data is available. If a negativedetermination has been made, control returns to step 107. Otherwise,step 109 occurs, wherein the system receives the updated external data.Then, control proceeds to step 98, discussed above.

FIG. 5 is a diagram illustrating another embodiment of the presentdisclosure, indicated generally at 110. In this embodiment, networkconnectivity and remote monitoring/control of pool and spa components isprovided by way of a central pool/spa system controller 114 f. Thepool/spa system controller 114 f could be the OMNILOGIC pool/spa systemcontroller manufactured and sold by Hayward Industries Inc. The pool/spasystem controller 114 f could communicate with one or more valveactuators 114 e, a single speed pump 113, a variable speed pump 114 a,pool/spa lighting systems 114 h, a pool/spa heating or cooling system114 b, and/or a pool/spa chlorination system 114 c, such as a saltchlorinator. Additionally, the pool/spa control system 114 f couldreceive input from one or more external sensors 126 and could provide“personality” by way of remotely provisioned logic for the devices. Thepool/spa control system 114 f communicates with a remote server, such asthe server 118, via a WiFi router 122 and the Internet. The server 118could communicate with one or more remote control systems 120, such as asmart device (e.g., smart phone, smart speaker, smart TV, embeddeddevice), a computer system, a tablet computer, etc. The control system114 f could also receive external web data 131 via the Internet and WiFirouter 122 (e.g., time & date, sunrise/sunset data, regional and localweather forecasts, wind, UV, sunlight) for use by pool control logic170, described hereinbelow. Additionally, the WiFi router 122 couldcommunicate with a home management system 125 in a peer-to-peerarrangement, if desired. The server 118 could also access big data 127and perform analytics 129 in connection with various types ofinformation relating to the pool/spa equipment, usage thereof, andstatus information relating thereto. Further, the server 118 communicatewith one or more third-party smart devices 124 via a suitable cloudapplication programming interface (API). The third-party smart devices124 could also remotely communicate with and control the pool/spaequipment shown in FIG. 5 . Additionally, the pool/spa control system114 f could include pool logic 170 stored therein for allowing centralcontrol and monitoring of pool/spa equipment at the pool/spa site. Thepool logic 170 could include any of the various pool control logicdescribed herein. Additionally, such logic 170 could also be stored inthe server 118, or at another location.

FIG. 6 is a flowchart, indicated generally at 130, illustratingprocessing steps carried out by the system of FIG. 5 . In step 132, thepool/spa system controller 114 f of FIG. 5 monitors connected devicesfor incoming operational data. Then, in step 134, a decision is made asto whether incoming operational data has been received. If not, controlreturns to step 132. Otherwise, step 136 occurs, wherein the pool/spasystem controller receives incoming operational data. Then, in step 138,the pool/spa system controller 114 f processes instructions, operationaldata, and external data, discussed hereinbelow. Then, in step 140, thepool/spa system controller 114 f optimizes operational set points. Instep 142, the pool/spa system controller transmits set points to theconnected devices, such as the pool/spa equipment 113, 114 a, 114 h, 114b, and 114 c shown in FIG. 5 . In step 144, the pool/spa systemcontroller 114 f could also transmit such setpoint information to otherdevices, such as the smart devices 124 illustrated in FIG. 5 .

In step 150, the pool/spa system controller monitors for incominginstructions. In step 152, a determination is made as to whether anincoming instruction has been received. If not, control returns to step150. Otherwise, step 150 occurs, wherein the pool/spa system controller114 f receives incoming instructions. Then, processing proceeds to step138, discussed above. In step 156, the pool/spa system controller 114 fmonitors for updated external data (e.g., web-supplied data, such asweather information and other information from remote data sources). Instep 158, the system determines whether updated external data isavailable. If not, control returns to step 156. Otherwise step 160occurs, wherein the pool/spa system controller receives the updatedexternal data. Then, control proceeds to step 138, discussed above.

FIG. 7 is a diagram illustrating another embodiment of the system of thepresent disclosure, wherein remote connectivity is provided by way of apool “hub” component 230. The pool hub component 230 includes a subsetof the functional features of the pool/spa system controller 114 f ofFIG. 5 , such as basic on/off control relays, the ability to select apump speed, the ability to select heater temperature, the ability tocontrol pool light colors and shows, the ability to set equipmentschedules, and the ability to interlock one pool/spa component withanother pool/spa component. The pool hub communicates with and controlsa number of pool/spa components, such as a single speed pump 213, avariable speed pump 214 a, pool/spa lighting systems 214 h, a pool/spaheating system 214 b, and a pool/spa chlorination system 214 c.Additionally, the pool hub 230 can control a valve actuator 214 e andcan receive various sensor inputs 226 and 228, such as temperaturesensors, wind speed sensors, runtime sensors, current/voltage usagesensors, flow sensors, heater pressure sensors, water temperaturesensors, chlorine sensors, pH/ORP sensors, etc. Such sensors could bepositioned internally within the hub, external thereto, or a combinationthereof. Additionally, the pool hub 230 could be powered by electricalcurrent supplied by a breaker panel 217 or by photovoltaic (e.g., solar)cells and/or systems. Breaker panel 217 could also be a smart circuitbreaker (e.g., a circuit breaker that can be controlled via wired orwireless communication) used to provide and/or to interrupt power to thedevices disclosed herein. The pool hub 230 could communicate with aremote server 218 via a WiFi router 222 and a network connection such asthe Internet. The server to 218 could include pool logic 270 which canbe used to remotely monitor and control operation of the devices to 213,214 a, 214 h, 214 b, and 214 c. The pool logic 270 could include any ofthe pool logic discussed herein. Additionally, the server 218 couldcommunicate with one or more remote control devices 220, such as a smartcellular telephone, a remote computer, a tablet computer, etc. Theserver 218 could also receive external web data 231 via the Internet(e.g., time & date, sunrise/sunset data, regional and local weatherforecasts, wind, UV, sunlight) for use by pool logic 270. Further, theserver 218 could communicate with one or more third-party devices 224via an appropriate cloud API. Further, the server 218 could process bigdata 232 and perform analytics 234 on various pool/spa data. Stillfurther, the server 218 could communicate with a home management system225, if desired.

FIG. 8 is a flowchart illustrating processing steps, indicated generallyat 240, carried out by the system of FIG. 7 . In step 242, the pool hub230 monitors connected devices for incoming operational data. In step244, a determination is made as to whether an incoming operational datahas been received. If not, control returns to step 242. Otherwise, step246 occurs, wherein the pool hub 230 receives incoming operational data.Then, in step 248, the pool 230 transmits incoming instructions andoperational data to the server 218. Then, in step 250, the server 218receives the incoming instructions and operational data from the poolhub 230. In step 252, the server 218 processes the incominginstructions, operational data, and external data, discussedhereinbelow. In step 254, the server 218 optimizes operational setpoints. Then, in step 256, the server 218 transmits operationalsetpoints to the pool hub 230. In step 258, the pool hub 230 receivesthe operational set points. Then, in step 260, the pool hub 230transmits the operational setpoints to the connected devices. In step262, the pool hub 230 optionally transmits the operational setpoints toone or more smart devices, such as the third-party smart devices 224 ofFIG. 7 .

In step 263, the pool hub 230 monitors smart devices for incomingoperational data. In step 265, a decision is made as to whether incomingoperational data has been received. If not, control returns to step 263.Otherwise, step 246 occurs, where in the incoming operational data isreceived at the pool hub 230. Then, control passes to step 248,discussed above.

In step 264, the pool hub 230 monitors for incoming instructions. Then,in step 266, a determination is made as to whether an incominginstruction has been received. If a negative determination has beenmade, control returns to step 264. Otherwise, step 268 occurs, whereinthe pool hub 230 receives the incoming instructions. Then, controlpasses to step 248, discussed above.

In step 272, the server 218 monitors for updated external data, such asweb-supplied data including weather data and other data. In step 274, adetermination is made as to whether updated external data is available.If not, control returns to step 272. Otherwise, step 276 occurs, whereinthe updated external data is received at the server 218. Then, controlpasses to step 252, discussed above.

FIG. 9 is a diagram illustrating another embodiment of the system of thepresent disclosure, indicated generally at 310. In this embodiment, apool command “translator” module 330 is provided, which includes acomplete set of pool logic 370. The pool logic 370 could include any ofthe pool logic discussed herein. The translator 330 could communicatewith one or more external relays 329. Additionally, the translator 330could communicate with a plurality of pool/spa components, includingvalve actuators 314 e, a single speed pump 313, a variable speed pump314 a, pool/spa lighting systems 314 h, a pool/spa heating system 314 b,and a pool/spa chlorination system 314 c. The translator 330 couldreceive electrical power from a breaker panel 317 or from photovoltaic(e.g., solar) cells and/or systems. Breaker panel 317 could also be asmart circuit breaker (e.g., a circuit breaker that can be controlledvia wired or wireless communication) used to provide and/or to interruptpower to the devices disclosed herein. Additionally, the translator 330could receive information from various sensors such as external sensors326 and internal sensors 328. Such sensors could include, but are notlimited to, temperature sensors, wind speed sensors, runtime sensors,current/voltage usage sensors, flow sensors, heat pressure sensors,water temperature sensors, chlorine sensors, PH/ORP sensors, etc. Thetranslator 330 could also receive external web data 331 via the Internetand WiFi router 322 (e.g., time & date, sunrise/sunset data, regionaland local weather forecasts, wind, UV, sunlight) for use by pool logic370.

The translator 330 could communicate with the remote server 318 via aWiFi router 322 and a network connection such as the Internet. Theserver 318 could communicate with the remote control system 320, such asa smart cellular telephone, a remote computer, a tablet computer, etc.Additionally, the server 318 could process big data 332 and performanalytics 334 on pool/spa data, using a suitable API. Further, theserver 318 could communicate with one or more third-party smart devices324, using a suitable cloud API. Still further, the server 318 couldcommunicate with a home management system 325, if desired.

FIG. 10 is a flowchart showing processing steps, indicated generally at340, carried out by the system of FIG. 9 . In step 342, the translator330 monitors connected devices for incoming operational data. In step334, a decision is made as to whether incoming operational data has beenreceived. If not, control returns to step 342. Otherwise, step 346occurs, wherein the translator 330 receives the incoming operationaldata. Then, step 360 occurs, wherein the translator processesinstructions, operational data, and external data, discussedhereinbelow. In step 362, the translator optimizes operational setpoints. Then, in step 364, the translator transmits the setpoints to theconnect devices (e.g., to the components 313, 314 a, 314 e, 314 h, 314b, and 314 c). Optionally, in step 366, the translator could transmitthe setpoints to one or more smart devices, such as the third-partysmart devices 324.

In step 348, the translator 330 monitors smart devices for incomingoperational data. In step 350, a decision is made as to whether incomingoperational data has been received. If not, control returns to step 348.Otherwise, step 352 occurs, wherein the translator 330 receives incomingoperational data. Then, control passes to step 360, discussed above.

In step 354, the translator 330 monitors for incoming instructions. Instep 356, a decision is made as to whether incoming instructions havebeen received. If not, control returns to step 354. Otherwise, step 358occurs, wherein the translator 330 receives incoming instructions. Then,control passes to step 360, discussed above.

In step 368, the translator 330 monitors for updated external data, suchas web data. Such data could include, but is not limited to, remoteweather data, etc. In step 372, a decision is made as to whether updatedexternal data is available. If not, control returns to step 368.Otherwise, step 374 occurs, wherein the translator 330 receives theupdated external data. Then, control passes to step 360, discussedabove.

FIG. 11 is a diagram illustrating another embodiment of the system,indicated generally at 410. In this embodiment, remote connectivity isprovided by way of a plurality of connectivity modules 430 a-430 e. Eachof these modules could include a combination of high and/or low voltagerelays for connection to various pool and spa equipment, such as valveactuators 414 e, a single speed pump 413, a variable speed pump 414 a,pool/spa lighting systems 414 h, pool/spa heating system 414 b, and/orpool/spa chlorination system 414C. Connectivity could be provided to thepool/spa equipment additionally using WiFi, Bluetooth, or RF mesh (e.g.,ZWave, Zigbee, Thread, Weave, etc.) connectivity. The connectivitymodules could provide WiFi for every unit, could adapt for usage withlegacy devices, could provide “personality” by way of remotelyprovisioned logic for the devices, could remember limp mode schedulesduring a WiFi outage, and could also include start/stop buttons and anLS bus gate way, if desired. The modules could be powered by a breakerpanel 427 or by photovoltaic (e.g., solar) cells and/or systems. Breakerpanel 427 could also be a smart circuit breaker (e.g., a circuit breakerthat can be controlled via wired or wireless communication) used toprovide and/or to interrupt power to the devices disclosed herein.Additionally, each of the modules could communicate with a remote server418 by a WiFi router 422 and a network connection, such as the Internet.The pool/spa control logic 470 could be provided in the server 418 forremotely controlling and monitoring the pool/spa equipment. The poollogic 470 could include any of the pool logic discussed herein. Theserver 418 could also receive external web data 431 via the Internet(e.g., time & date, sunrise/sunset data, regional and local weatherforecasts, wind, UV, sunlight) for use by pool logic 470. Additionally,the server 418 could communicate with one or more remote control devices420, such as a smart phone, a remote computer, a tablet computer, etc.The server 418 could access big data 432 and perform analytics 434 onpool/spa data, if desired. Additionally, the server 418 could alsocommunicate with one or more third-party smart devices 424, via asuitable cloud API. Still further, the server 418 could communicate witha home management system 425, if desired.

FIG. 12 is a diagram illustrating processing steps, indicated generallyat 440, carried out by the system of FIG. 11 . In step 442, the poolconnectivity modules 430 a-430 e monitor smart devices for incomingoperational data. In step 444, a determination is made as to whetherincoming operational data has been received. If not, control returns tostep 442. Otherwise, step 446 occurs, wherein the pool connectivitymodules each receive the incoming operational data. Then, and step 448,the pool conductivity modules 430 a-430 e transmit operational data tothe server 418. In step 450, the operational data is received at theserver 418. In step 452, the server 418 processes the incominginstructions, operational data, and external data, discussedhereinbelow. Then, in step 454, the server 418 optimizes operationalsupport. In step 456, the server 418 transmits the operational setpoints to the connected devices (e.g., to the devices 413, 414 a, 414 e,414 h, 414 b, and 414 c). In step 458, the server transmits operationalset points for the smart devices to the pool connectivity modules 430a-430 e. In step 460, the pool conductivity modules 430 a-430 e receivethe operational setpoints for the smart devices. Then, in step 462, themodules transmit the operational set points to the smart devices.

In step 464, the server for 18 monitors connected devices for incomingoperational data. In step 466, a determination is made as to whetherincoming operational data has been received. If not, control returns tostep 464. Otherwise, step 450 occurs, wherein the server 418 receivesthe operational data. Control then passes to step 452, discussed above.

In step 468, the server 418 monitors for incoming instructions. In step470, a determination is made as to whether the incoming instructionshave been received. If not, control returns to step 468. Otherwise, step472 occurs, wherein the server 418 receives the incoming instructions.Then, control passes to step 452, discussed above.

In step 474, the server 418 monitors for updated external data, such asweb data including, but not limited to, remote weather information, etc.Then, in step 476, a determination is made as to whether updatedexternal data is available. If not, control passes to step 474.Otherwise, step 478 occurs, wherein the updated external data isreceived at the server 418. Then, control passes to step 452, discussedabove.

FIG. 13 is a diagram illustrating another embodiment of the system ofthe present disclosure, indicated generally at 510. In this embodiment,wireless connectivity is provided directly within pool/spa equipment,allowing such equipment to communicate directly to the Internet. Asshown, pool spa equipment, such as a single speed pump 513, a variablespeed pump 5148, pool/spa lighting system 514 h, heater 514 b, and/orchlorinator 514 c, in addition to valve actuators 514 e, each havebuilt-in wireless communications subsystems, such as WiFi, Bluetooth,radiofrequency/RF mesh (e.g., ZWave, Zigbee, Thread, Weave, etc.), andor cellular wireless communication subsystems. Each of these devices cancommunicate directly with the Internet via a WiFi router 522.Additionally, external sensors 526 could also communicate with the WiFirouter 522, and could also include built-in wireless communications suchas WiFi, Bluetooth, radiofrequency/RF mesh (e.g., ZWave, Zigbee, Thread,Weave, etc.), and cellular communications. The sensors 526 couldinclude, but are not limited to, heater pressure sensors, watertemperature sensors, chlorine sensors, pH/aware pressure sensors, etc.It is noted that each of the pool/spa components could include theability to remember schedules during a WiFi outage (limp mode) asprovisioned by remote pool logic. Additionally, each of these devicescould include start/stop buttons, if desired, for stand-alone operation.A breaker panel 527 could provide electrical power to each of thepool/spa components. Breaker panel 527 could also be a smart circuitbreaker (e.g., a circuit breaker that can be controlled via wired orwireless communication) used to provide and/or to interrupt power to thedevices disclosed herein. In some embodiments, photovoltaic (e.g.,solar) cells and/or systems could provide electrical power to one ormore of the pool/spa components.

Each of the pool/spa components discussed above, including the sensors526, could communicate with a remote server 518. The server 518 couldinclude pool logic 570 for remotely controlling and/or monitoring thepool/spa equipment. The pool logic 570 could be any of the pool logicdiscussed herein. The server 518 could receive external web data 531 viathe Internet (e.g., time & date, sunrise/sunset data, regional and localweather forecasts, wind, UV, sunlight) for use by pool logic 570. Theserver 518 could also communicate with one or more remote controldevices 520, such as smart telephones, remote computer systems, tabletcomputers, etc. The server 518 could also access big data 532 andperform analytics 534 on pool/spa data, if desired. Additionally, theserver 518 could communicate with one or more third-party smart devices524, via a suitable cloud API. Still further, the server 518 couldcommunicate with a home management system 525, if desired.

FIG. 14 is a flowchart illustrating processing steps, indicatedgenerally at 540, carried out by the system of FIG. 13 . In step 542,the server 518 monitors connected devices for incoming operational data.Then, in step 544, a determination is made as to whether incomingoperational data has been received. If not, control returns to step 542.Otherwise, step 546 occurs, wherein the server 518 receives incomingoperational data. Then, in step 548, the server 518 processes theinstructions, the operational data, and external data, discussedhereinbelow. In step 550, the server 518 optimizes operational setpoints. Then, in step 552, the server transmits the setpoints to theconnected pool/spa devices, such as those devices shown in FIG. 13 .

In step 554, the server 518 monitors for incoming instructions. Then, instep 556, a determination is made as to whether incoming instructionshave been received. If not, control returns to step 554. Otherwise, step558 occurs, wherein the server 518 receives incoming instructions. Then,step 548, discussed above, is invoked.

In step 560, the server 518 monitors for updated external data, such asweb data including, but not limited to remote weather data, etc. In step562, a decision is made as to whether updated external data isavailable. If not, control returns to step 560. Otherwise, step 564occurs, wherein the server 518 receives the updated external data. Then,control passes to step 548, discussed above.

FIG. 15 is a diagram illustrating another embodiment of the system ofthe present disclosure, indicated generally at 610. In this embodiment,network connectivity and remote monitoring/control is provided by way ofa reduced-size hub 646 which can be easily wall-mounted. The hub 646provides wired and wireless connections for various pool and spaequipment, such as a variable speed pump 614 a, a single-speed pump 613,a smart heater 614 b, a legacy heater 615, a chlorination system 617,any other type of chlorinator 614 c, a booster pump 619, and athird-party pump 621. Various relays 648, 650, 652, and 654 could alsobe provided for controlling the pumps, if desired. Also, the hub 646could communicate with and control a smart valve actuator 614 e, and/orlighting system 614 h. Optional control relays 656 and power supplies658 could also be in communication with the hub 646.

As can be seen, the hub 646 could provide a WiFi hotspot for allowing ahomeowner's cellular telephone, tablet computer, or personal computer644 to communicate with the hub 646, and to control the pool/spaequipment shown in FIG. 15 . A breaker panel 627 provides electricalpower to the various devices shown in FIG. 15 . Breaker panel 627 couldalso be a smart circuit breaker (e.g., a circuit breaker that can becontrolled via wired or wireless communication) used to provide and/orto interrupt power to the devices disclosed herein. In some embodiments,photovoltaic (e.g., solar) cells and/or systems could provide electricalpower to one or more of the various devices shown in FIG. 15 . Awall-mounted light controller 640 could communicate by Bluetooth and/orRF mesh (e.g., ZWave, Zigbee, Thread, Weave, etc.) to the hub 646 forremotely controlling the lights 614 h. Additionally, a third-partyBluetooth and/or RF mesh-enabled switch 642 could also communicate withthe hub 646. The hub 646 could also communicate with the homeowner'sWiFi router 622 for providing an Internet connection to the pool/spacomponents. A remote pool/spa server 618 could communicate with therouter 622 via the Internet, to provide remote monitoring and control ofthe pool/spa equipment, if desired. Additionally, the server 618 couldcommunicate with one or more remote computer systems 620 such as a smartphone, a tablet computer, a remote computer system, etc., if desired.The pool/spa control logic discussed herein could be installed in theserver 618, in the remote computer 620, and/or in the smart phone 644(e.g., by way of a pool control “app”), if desired. Further, the server618 could communicate with one or more third-party smart devices 624 bya suitable cloud API, and the server 618 could access big data 632 andperform analytics 634 on pool/spa data, if desired. The server 618 couldalso communicate with a home management system 638, if desired.

FIG. 16A is a diagram illustrating another embodiment of the system ofthe present disclosure, indicated generally at 710. In this embodiment,network connectivity and remote monitoring/control is provided by way ofa WiFi-enabled pool/spa chlorination system and controller 717. Thecontroller 717 provides connections for various pool and spa equipment,such as a variable speed pump 714 a, a single-speed pump 713, a smartheater 714 b, a legacy heater 715, a chlorination system 717 c, abooster pump 719, and a third-party pump 721. Various relays 749, 750,and 754 could also be provided for controlling the pumps, if desired.Also, the controller 717 could communicate with and control a smartvalve actuator 714 e, and/or lighting system 714 h. Optional controlrelays 756 and power supplies 758 could also be in communication withthe controller 717.

A breaker panel 727 provides electrical power to the various devicesshown in FIG. 16A. Breaker panel 727 could also be a smart circuitbreaker (e.g., a circuit breaker that can be controlled via wired orwireless communication) used to provide and/or to interrupt power to thedevices disclosed herein. In some embodiments, photovoltaic (e.g.,solar) cells and/or systems could provide electrical power to one ormore of the various devices shown in FIG. 16A. The controller 717 couldalso communicate with the homeowner's WiFi router 722 for providing anInternet connection to the pool/spa components. A remote pool/spa server718 could communicate with the router 722 via the Internet, to provideremote monitoring and control of the pool/spa equipment, if desired.Additionally, the server 718 could communicate with one or more remotecomputer systems 720 such as a smart phone, a tablet computer, a remotecomputer system, etc., if desired. The pool/spa control logic discussedherein could be installed in the server 718, in the remote computer 720,or elsewhere, if desired. Further, the server 718 could communicate withone or more third-party smart devices 724 by a suitable cloud API, andthe server 718 could access big data 732 and perform analytics 734 onpool/spa data, if desired. Still further, the server 718 couldcommunicate with a home management system 738 if desired.

FIG. 16B is a diagram illustrating another embodiment of the system ofthe present disclosure, indicated generally at 4510. In this embodiment,network connectivity and remote monitoring/control is provided by way ofa WiFi-enabled pool/spa variable speed pumping system and controller(also referred to herein in connection with FIG. 16B as “variable speedpumping system,” “pumping system,” or “controller”), indicated generallyat 4514 a. As referred to herein, a variable speed pumping system caninclude a variable speed pump, a possessor/controller, memory,communications interface(s), and an input device, so that the variablespeed pumping system can communicate with and/or control additionalinstalled pool/spa equipment. Accordingly, pump control logic 84, asdescribed hereinbelow, could be installed/reside in variable speedpumping system 4514 a. For example, any of the various processes in theembodiments described herein in connection with FIGS. 19A-19AU could beincorporated into pump control logic 84 and installed in variable speedpumping system 4514 a, either alone or in any combination. Further, anyadditional processes disclosed herein in connection with pool controllogic 70 (e.g., water feature control logic 72, valve actuator controllogic 74, cleaner control logic 76, lighting control logic 78, heatercontrol logic 80, chemistry automation control logic 82) could also beincorporated into pump control logic 84 and installed in variable speedpumping system 4514 a, either alone or in any combination.

The controller 4514 a provides connections for various pool and spaequipment, such as a pool/spa chlorination system 4517, a single-speedpump 4513, a smart heater 4514 b, a legacy heater 4515, a chlorinationsystem 4514 c, a booster pump 4519, and a third-party pump 4521. Variousrelays 4549, 4550, and 4554 could also be provided for controlling thepumps, if desired. Variable speed pumping system and controller 4514 acould include on-board or modularly upgradeable pool control components(e.g., communication modules, relays, temperature sensors, pressuresensors, flow sensors, etc.). For example, the variable speed pumpingsystem 4514 a could control existing heaters (or heat pumps) usingon-board or modularly upgradeable relays and temperature sensors. Pumpcontrol logic 84, discussed in greater detail hereinbelow, could alsoutilize multiple sensors for parallel plumbing circuits (e.g., branchplumbing). Also, the controller 4514 a could communicate with andcontrol a smart valve actuator 4514 e, and/or lighting system 4514 h.Optional control relays 4556 and power supplies 4558 could also be incommunication with the controller 4514 a. Accordingly, variable speedpumping system and controller 4514 a could use the modularly upgradeablesmart relays to control a variety of existing installed pool/spaequipment including single speed pumps, pressure cleaner booster pumps,LED and incandescent pool lights, and landscape lights. The modularlyupgradeable control components can be used by pump control logic 84 toprovide pump or system performance reporting and diagnostic functions(present and historical) including, but not limited to, phase current,torque, speed, horsepower, run time, and ramp rate. Pump control logic84 could provide the system performance and diagnostic information tothe cloud, or to a smart to a smart device via a Bluetooth or any of theother communication protocols disclosed herein.

A breaker panel 4527 provides electrical power to the various devicesshown in FIG. 16B. Breaker panel 4527 could include one or more smartcircuit breakers (e.g., a circuit breaker that can be controlled viawired or wireless communication) used to provide and/or to interruptpower to the devices disclosed herein, and/or conventional circuitbreakers. In some embodiments, photovoltaic (e.g., solar) cells and/orsystems could provide electrical power to one or more of the variousdevices shown in FIG. 16B. The controller 4514 a could also communicatewith the homeowner's WiFi router 4522 for providing an Internetconnection to the pool/spa components. A remote pool/spa server 4518could communicate with the router 4522 via the Internet, to provideremote monitoring and control of the pool/spa equipment, if desired.Additionally, the server 4518 could communicate with one or more remotecomputer systems 4520 such as a smart phone, a tablet computer, a remotecomputer system, etc., if desired. The pool/spa control logic discussedherein could be installed in the variable speed pumping system andcontroller 4514 a, in the server 4518, in the remote computer 4520, orelsewhere, if desired. Further, the server 4518 could communicate withone or more third-party smart devices 4524 by a suitable cloud API, andthe server 4518 could access big data 4532 and perform analytics 4534 onpool/spa data, if desired. Still further, the server 4518 couldcommunicate with a home management system 4538 if desired. It is alsofurther complicated that any of the functions described herein couldalso be performed by the variable speed pumping system and controller4514 a.

As illustrated in FIG. 16B, the pumping system and controller 4514 a canbe provided with a human machine interface or user interface device,indicated generally at 4560. The user interface could include physicalkeys, a digital display, and/or a touchscreen 4562, as shown in FIG.16B, any other suitable input technologies, or any combination thereof.It is also contemplated that any of the pool/spa equipment describedherein could be provided with a similar user interface device. Providinga user interface device 4562 on pumping system and controller 4514 aenables the delivery of existing or enhanced features of local pool/spaequipment control and control of remote devices (e.g., beyond the poolarea) to the pool owner via the pool pump, while also reducing costs tothe pool owner (e.g., reducing hardware costs, installation expenses,etc.). Because every pool/spa must include at least one pump, providingcontrol of and communication with additional equipment, connectivity,and monitoring (e.g., status and condition of pool and equipment)functionality of the pool environment via the pool pump can furtherreduce pool owner cost and significantly improve usability. Byleveraging information obtained at the equipment pad, fromremote/external devices, and/or via a connection to the internet,operation of the pumping system 4514 a and other devices can be furtheroptimized.

FIG. 17 is a diagram illustrating another embodiment of the system ofthe present disclosure, indicated generally at 810. In this embodiment,network connectivity and remote monitoring/control is provided by way ofa reduced-size hub 860 which can be easily wall-mounted. The hub 860provides wired and wireless connections for various pool and spaequipment, such as a variable speed pump 814 a, a single-speed pump 813,a smart heater 814 b, a legacy heater 815, a chlorination system 817 c,and other equipment (e.g., lighting equipment).

As can be seen, the hub 860 could provide a WiFi hotspot for allowing ahomeowner's cellular telephone, tablet computer, or personal computer844 to communicate with the hub 846, and to control the pool/spaequipment shown in FIG. 17 . A breaker panel 827 provides electricalpower to the various devices shown in FIG. 17 . Breaker panel 827 couldalso be a smart circuit breaker (e.g., a circuit breaker that can becontrolled via wired or wireless communication) used to provide and/orto interrupt power to the devices disclosed herein. In some embodiments,photovoltaic (e.g., solar) cells and/or systems could provide electricalpower to one or more of the various devices shown in FIG. 17 . Awall-mounted light controller 840 could communicate by Bluetooth and/orRF mesh (e.g., ZWave, Zigbee, Thread, Weave, etc.) to the hub 860 forremotely controlling lights. Additionally, a third-party Bluetoothand/or RF mesh-enabled switch 842 could also communicate with the hub860. The hub 860 could also communicate with the homeowner's WiFi router822 for providing an Internet connection to the pool/spa components. Aremote pool/spa server 818 could communicate with the router 822 via theInternet, to provide remote monitoring and control of the pool/spaequipment, if desired. Additionally, the server 818 could communicatewith one or more remote computer systems 820 such as a smart phone, atablet computer, a remote computer system, etc., if desired. In thisembodiment, the server 818 is a cloud-based, virtual server, and thepool/spa control logic discussed herein is installed in the server 818.The pool logic could be any of the pool logic discussed herein. Further,the server 818 could communicate with one or more third-party smartdevices 824 by a suitable cloud API, and the server 818 could access bigdata 832 and perform analytics 834 on pool/spa data, if desired. Theserver 818 could also communicate with a home management system 838, ifdesired.

FIG. 18 is a diagram 900 illustrating pump control logic 84. Pumpcontrol logic 84 could incorporate and/or be in communication with avariety of types of data and/or data sources. More specifically, pumpcontrol logic 84 can communicate with, or receive, user input data 902,pump operational data 904, pump factory specifications 906, pumpconfiguration parameters 908, web data 910, pool configurationparameters 912, data from related devices 914, health monitoring data916 and/or external sensor data 918.

Pump control logic 84 can control variable speed pumps, designed forresidential and commercial pool applications (as well as additionalinstalled pool/spa equipment), providing flow and pressure for watercirculation and operation of pool equipment. Variable speed pumps, asdescribed herein, could include a pump wet end, a motor, a variablefrequency/speed drive, and a user interface (see FIG. 16B). The variablespeed pump is used anytime a pool is in operation, which may beyear-round and/or all-day based on a particular application (e.g.residential vs. commercial) or location. The pump control logic 84 cancontrol the variable speed drive to operate in stand-alone mode, relaycontrol mode, or via communication with Hayward automation, describedhereinbelow.

In stand-alone mode, the pump operates independently of the pool controllogic 70. Stand-alone mode is programmable with respect to functionssuch as timers and preset speeds. In relay control mode, the pumpoperates according to inputs received from third party systems anddevices using low voltage digital inputs. For example, the digitalinputs could be used to select discrete timer speeds set in the pumpuser interface. When communicating with Hayward automation, the pump iscontrolled by a variety of Hayward automation systems such as, but notlimited to: OmniLogic®, ProLogic®, and OnCommand®. The pump couldcommunicate with Hayward automation systems using RS485 and associatedHayward automation communication protocols, or any other suitablecommunication protocol disclosed herein.

In addition to operating in the modes described previously, the pump canalso serve as a pool control system. The user interface could utilize acolor LCD touch screen with resistive and/or capacitive touchcapability, or any other suitable input technology. The user interfacecould provide a user with information such as ambient air and pool watertemperatures, providing true freeze protection capability, as well asthermostat control of a pool heater or heat pump. The user interfacecould also be used to communicate with and to control one or more smartrelays and smart actuators, allowing the pump to coordinate operation ofother pieces of pool equipment. For example, the user interface can beused for interlock control of other installed pool/spa equipment. Thepump could also be provided with a communication module (e.g., WiFi,ethernet, Bluetooth, ZWave, Zigbee, Thread, Weave, etc.) allowing remoteapplication control of the pump and/or pool pad equipment, and to allowremote data collection of site specific information.

Pump control logic 84 can be controlled remotely with a personalcomputer, smart phone, tablet, or other device via wired or wirelesscommunication, including but not limited to, Bluetooth, WiFi, powerlinetransmission, etc. Accordingly, the pump can have a full-featured localinterface (see FIG. 16B), minimal local user interface, or no local userinterface at all. Nevertheless, all aspects of the pump operational dataand pump control logic 84 can be available for review and adjustment ifnecessary. The pump control logic 84 can report multiple pieces ofinformation to a user, the system, or a central server for datacollection, storage and analysis. The information can include, but isnot limited to, date of installation, warranty registration, warrantypossible claims, feedback of problems daily operating conditions, usagestatistics, feedback of power supply conditions or quality, detailedprofiles of pool pad setups, and information related to other equipmentthe pump may be controlling. The pump control logic 84 can alsoautomatically register warranties and submit warranty claims shouldthere be an issue with any piece of equipment in the system.

User input data 902 could include timers, schedules (e.g., on/off,speed, duration of operation, how much flow should be provided),turnover goals, turbidity/water clarity goals, etc. Pump operationaldata 904 could include power consumption, current draw, input voltage,flow (rate), flow (yes/no), temperature, water pressure, air cavitation,water detection, debris sensor, etc. Pump factory specifications 906could include power consumption current draw, input voltage, lifeexpectancy, etc. Pump configuration parameters 908 could include IPaddress, GPS coordinates, zip code, time and date, etc. Web data 910could include location (based on IP address), time and date,sunrise/sunset data, regional and local weather forecast data, ambienttemperature, ambient light, humidity, season, elevation, dew point, etc.For example, the pump control logic 84 could shift the pump timers basedon weather input. Pool configuration parameters 912 could include poolsurface area, pool geometry, pool liner color, pool cover (yes/no), poolvolume, etc. Data from related devices 914 could include data relatingto at least the following: strainer(s), pool cover(s), filter(s),chlorinator(s), skimmer(s), pool cleaner(s), water features (e.g.,laminar, bubbler, sheer fall, deck jet, fountains, scuppers, waterfall,etc.), heater(s) (gas/heat pump), heat (solar), chemical dispenser(s),disinfectant system(s) (ultraviolet ozone), secondary pump(s),tablet/liquid chlorine feeder(s), valves, controller(s), spa(s), waterslide(s), etc. For example, the pump control logic 84 could receiveinput from an external device to identify an operating profile. Inanother example, the pump control logic 84 could determine the mostefficient turn-over rate based on the volume of the body of water. Inyet another example the pump control logic could lower the speed of thepump to prevent a water feature from flooding a closed pool cover.Health monitoring data 916 could include line-to-line balance,grounding, bonding, leak current, runtime, operating temperature, powerconsumption, predictive failure, operating noise, power cycles, airflowsensor, temperature of cooling, efficiency, settings, troubleshootingdata, etc. External sensor data 918, could include water level, watertemperature, water flow speed, suction/vacuum pressure, strainer basketload, airflow sensor or temperature of cooling, pool cover detection,turbidity, valve position, etc. Additionally, the pump control logic canreceive heater and pump data trends, learning data, time and speeds usedper month, time and duration that a pool cover is open, and variouscharacteristics of pump use. While it may be desirable for externalsensors to monitor/provide data on as many system parameters as possible(thereby providing greater optimization, automation, and user/operatorcomfort), it is contemplated that some systems need not utilize anexternal sensor to monitor every system parameter. For example, if atemperature sensor has not been installed in a particular system, theuser/operator can provide this information by first determining thetemperature (e.g., by checking a thermometer, a thermocouple, a weatherforecast, the Internet, etc.) and then entering the temperature into thesystem via a user interface. Using this data, the pump control logic 84could optimize the operation of the pump by, for example, running basedon whether conditions (e.g., windy conditions produce more leaves andthus a need for more skimming), maximizing energy factor (or bestefficiency point), communicating errors to the user/dealer/manufacturer,communicating performance to the manufacturer (e.g., usage stats) tocalculate system curve to profile pools, providing feedback (e.g.,basket is full, bearings going bad, seal starting to leak, etc.), andresponding to needs of other equipment (e.g., pump/pump control logiccould control actuators or other devices for pool pads with limitedequipment (Low voltage control), lighting system, cleaner, high voltagecontrol for booster pump, and hub through direct control or bridge tocloud for pool pad).

The pump could include a software application (accessible via userinterface 4562 or on a remote device having a similar user interface),described in greater detail hereinbelow, that delivers enhanced featuresto the user. For example, the application could define a pool owner'susage and target modes for the user to select from including but notlimited to efficiency mode, spa mode, or party mode. Selecting a modewill automatically adjust pump speed or flow accordingly. Theapplication can also allow for seasonal adjustability which will adjustoperation of the pump based on the time of year. The application canalso monitor the pump and send a signal or message if the pump has beeninoperative for a defined period of time. Sending this message canremind a user to resume operation of a pump if he/she manually stoppedit. The application can also report the energy consumption of the pumpinstantly or in monthly or yearly reports. The application can alsoprovide a single push for pre-loaded programs for the pump. Theapplication can also allow for quick access dynamic languagetranslation. The application can also monitor pump usage, and display anumber of “favorite” speeds by the user. The amount of speeds shown canbe dependent on the user and does not have to show the maximum number ofpossible preset speeds. The application can also allow for the quick andeasy ability to switch to the last selected program or “last known good”program which is the last program that ran without any errors. Theapplication can send notifications of all activities within the systemvia WiFi, Bluetooth or similar means. The notifications can include butis not limited to a blocked filter, increase in RPM of the pump, orreporting of loss of prime-protects system. The application can includea page for frequently asked questions for service and troubleshooting ofall components in the system 10. The application can further includelinks to service and troubleshooting videos.

The pumping system or application can also certify that installation iscorrect and reliable. The application can provide a “certificationchecklist” and wizard that guides the installer to verify the entirepool pad after configuration. Some items on the checklist can include,but is not limited to, checking whether the correct pump is on thecorrect relay, verify simulated schedule execution, confirm allequipment is working, confirm user preferences, etc. Once the checklistis completed, the pool is “certified” to be configured and tested and isnow ready for use.

FIGS. 19A-19G are flowcharts illustrating processing steps of the pumpcontrol logic 84. FIG. 19A is a flowchart illustrating processing logicof the pump control logic 84 communicating with a pump. In step 1000,the pump control logic 84 receives an instruction to activate the pump.In step 1002, the pump logic 84 retrieves data pertaining to factoryspecified power parameters from memory, e.g., parameters relating topower consumption, current draw, and line voltage. In step 1004, thepump logic 84 receives line power operational data. In step 1006, thepump logic 84 determines whether the line power operational data iswithin factory specified operation parameters. If a positivedetermination is made, the process proceeds to step 1012. If a negativedetermination is made, the process proceeds to step 1008. In step 1012,the pump control logic 84 transmits an instruction to the pump toactivate, and the process ends. As referenced above, if a negativedetermination is made at step 1006, then the process proceeds to step1008. In step 1008, the pump control logic 84 determines if there areany retries remaining. If a positive determination is made, then thepump control logic 84 proceeds to step 1004 and continues the processfrom that step. If a negative determination is made, then the pumpcontrol logic 84 proceeds to step 1010 and transmits an error conditionsignal, and then returns to step 1004 to continue the process from thatstep. For example, in step 1002, the line voltage can be measured,including but not limited to, L1-L2, L1-GND, L2-GND, and in step 1010,pump control logic 84 can report associated issues to the user. Inanother example, pump control logic 84 can measure the line current instep 1002, and in step 1010, pump control logic 84 can report associatedissues to the user. In yet another example, pump control logic 84 canmeasure the ground leakage current in step 1002, monitor for propergrounding in steps 1006 and 1008, and report associated issues to theuser in step 1010. The pump control logic 84 can also check and verifyproper bonding connection (e.g., checking for electrical continuitybetween the pump and a known good bonding point using a voltagemeasurement circuit or other known means) in the aforementioned steps.

FIG. 19B is another flowchart illustrating processing logic of the pumpcontrol logic 84 communicating with a pump in connection with priming.In step 1020, the pump control logic 84 receives an instruction toactivate the pump. In step 1022, the pump logic 84 receives operationaldata from a pump water detection sensor. In step 1024, the pump logic 84determines whether water is detected. If a positive determination ismade, the process proceeds to step 1029. If a negative determination ismade, the process proceeds to step 1025. In step 1029, the pump controllogic 84 clears the priming period timer, and the process ends. Asreferenced above, if a negative determination is made at step 1024, thenthe process proceeds to step 1025. In step 1025, the pump control logic84 starts or continues the priming period timer and then proceeds tostep 1026 where it determines if there is any time remaining. If apositive determination is made, then the pump control logic 84 proceedsto step 1027 where it decrements the priming timer and then continues tostep 1022 to continue the process from that step. If a negativedetermination is made, then the pump control logic 84 proceeds to step1028 and transmits an error condition signal indicating that prime hasfailed, and the process ends.

FIG. 19C is another flowchart illustrating processing logic of the pumpcontrol logic 84 communicating with a pump. In step 1030, the pumpcontrol logic 84 receives an instruction to activate the pump. In step1032, the pump logic 84 receives operational data from a debris sensorin a strainer basket. In steps 1034 and 1036, the pump logic 84determines whether the strainer basket is full. If a positivedetermination is made, the process proceeds to step 1038 where the pumpcontrol logic 84 transmits a message to the user to clean the strainerbasket and then returns to step 1032. If a negative determination ismade in step 1036, then the pump control logic 84 proceeds to step 1039and transmits an instruction to the pump to activate, and the processends.

FIG. 19D is a flowchart illustrating processing logic of the pumpcontrol logic 84 determining alert conditions of a pump and subsequentlynotifying a user or pool professional (e.g., service technician,builders, installers, etc.) of the alert condition. The pump controllogic 84 proceeds with four parallel routine sequences that respectivelybegin with steps 1040, 1050, 1060, and 1070. Each routine sequence isdiscussed sequentially, though it should be understood that the routineloops could operate in parallel, or alternatively, in series with eachother. The sequence beginning with step 1040 monitors the health of thepump (as well as other installed pool equipment, discussed hereinbelow)by monitoring the runtime of the pump and comparing the runtime of thepump with life expectancy data. In step 1040 the pump control logic 84retrieves factory specified life expectancy data from memory. Thefactory specified life expectancy data could be provided by themanufacturer as a specified number of hour, days, years, etc. for whichthe entire pump unit is expected to maintain optimal performance.Alternatively, factory specified life expectancy data could be providedfor individual components of the pump unit (e.g., motor bearings, othermotor components, etc.) in addition to, or in place of, the entire pumpunit, thereby providing users and service providers greater granularityand predictability for maintenance protocols. In step 1042, the pumpcontrol logic 84 determines an alert threshold, e.g., less than 90% ofpump life expectancy remaining or runtime value. Alternatively, thealert threshold could be provided by the user, by a pool professional(e.g., service technician, builders, installers, etc.), or by themanufacturer. In step 1044, the pump control logic 84 receivesoperational data on pump runtime and proceeds to step 1045 where itdisplays an odometer indicating pump runtime. It is noted that theodometer could also be configured to display the remaining lifeexpectancy of the pump and/or individual components. In step 1046, thepump control logic 84 determines if the pump runtime is greater than thethreshold. If a negative determination is made, then the process returnsto step 1044 and continues to receive operational data on pump runtime.If a positive determination is made, then the process proceeds to step1048 where an alert is transmitted to a user, and the process ends. Thealert could be a visual and/or audio notification that could bedisplayed on a user's smart device (e.g., phone, text, or email based).For example, if a user's smartphone is in communication with pumpcontrol logic 84, the alerts could be delivered via pop-up notification,text, etc. In addition to describing the problem, the alerts could alsosuggest possible remedies (e.g., “Excessive Motor Heating-ReduceSpeed”).

The second sequence begins in step 1050 where the pump control logic 84retrieves factory specified operating temperature data from memory. Theprocess then proceeds to step 1051 and step 1052. In step 1051, the pumpcontrol logic 84 stores the temperature rise (ambient to equipment) inthe histogram counters, and proceeds to step 1053. The histogramcounters can be bands that indicate temperature rise values, e.g., afirst counter band can be a temperature rise of 0-10 degrees, a secondcounter band can be a temperature rise of 10-20 degrees, a third counterband can be a temperature rise of 20-30 degrees, and a fourth counterband can be a temperature rise of greater than 30 degrees. In step 1053,the pump control logic 84 determines if the temperature rise is toohigh. If a negative determination is made, then the process returns tostep 1051 and continues to store the temperature rise in the histogramcounters. If a positive determination is made, then the process proceedsto step 1055 where an alert indicating “excessive motor heating” istransmitted to a user, and the process ends. In step 1052, the pumpcontrol logic 84 determines an alert threshold, e.g., a temperaturevalue that is 10% above or below operating temperature. In step 1054,the pump control logic 84 receives operational data on pump operatingtemperature. In step 1056, the pump control logic 84 determines if thepump operating temperature exceeds the threshold, or is outside of athreshold range. If a negative determination is made, then the processreturns to step 1054 and continues to receive operational data on pumpoperating temperature. If a positive determination is made, then theprocess proceeds to step 1058 where an alert is transmitted to a user,and the process ends.

The third sequence begins in step 1060 where the pump control logic 84retrieves factory specified power consumption data from memory. In step1062, the pump control logic 84 determines an alert threshold, e.g., apower value that is 110% of specified power consumption. In step 1064,the pump control logic 84 receives operational data on pump powerconsumption. In step 1066, the pump control logic 84 determines if thepump power consumption is greater than the threshold. If a negativedetermination is made, then the process returns to step 1064 andcontinues to receive operational data on pump power consumption. If apositive determination is made, then the process proceeds to step 1068where an alert is transmitted to a user, and the process ends.

The fourth sequence begins in step 1070 where the pump control logic 84retrieves factory warranty data from memory, e.g., a warranty expirationdate. In step 1072, the pump control logic 84 determines an alertthreshold, e.g., days left on factory warranty. In step 1074, the pumpcontrol logic 84 receives current date information. In step 1075, thepump control logic 84 determines if the current date is beyond thethreshold date or the number of days remaining is below the thresholddate. If a negative determination is made, then the process returns tostep 1074 and continues to receive current date information. If apositive determination is made, then the process proceeds to step 1076where an alert is transmitted to a user, and the process ends. Inaddition to the foregoing, it is contemplated that the pump controllogic 84 could also report additional information to the user, poolprofessional (e.g., service technician, builders, installers, etc.), ormanufacturer including runtime, operating temperatures/profile, powerconsumption, operating noise, number of power cycles, temperature ofcooling air (from a pump cooling fan), and degradation of efficiency.

FIG. 19E is another flowchart illustrating processing logic of the pumpcontrol logic 84 communicating with a pump. In step 1080, the pumpcontrol logic 84 receives an instruction to activate the pump. In step1082, the pump logic 84 retrieves maximum power consumption setpointdata from pool devices from memory, e.g., maximum combined powerconsumption for all active devices. In step 1084, the pump logic 84receives operational data on power consumption from all active devices.In step 1086, the pump logic 84 determines the combined powerconsumption for active devices. In step 1088, the pump logic 84determines whether the combined power consumption is below a setpoint.If a positive determination is made, the process proceeds to step 1094.If a negative determination is made, the process proceeds to step 1090.In step 1094, the pump control logic 84 transmits an instruction to thepump to activate, and the process ends. As referenced above, if anegative determination is made at step 1088, then the process proceedsto step 1090. In step 1090, the pump control logic 84 determines ifthere are any retries remaining. If a positive determination is made,then the pump control logic 84 proceeds to step 1084 and continues theprocess from that step. If a negative determination is made, then thepump control logic 84 proceeds to step 1092 and transmits a power savenotification, and the process ends.

FIG. 19F is another flowchart illustrating processing logic of the pumpcontrol logic 84 communicating with a pump. In step 1100, the pumpcontrol logic 84 receives an instruction to activate the pump. In step1102, the pump control logic 84 receives date and time information. Instep 1104, the pump control logic 84 determines the current season,e.g., summer. In step 1106, the pump control logic 84 retrievesoperational setpoint data for the current season from memory, e.g.,schedule, pump power, etc. In step 1108, the pump control logic 84transmits an instruction to the pump to operate at seasonal operationalsetpoints.

FIG. 19G is another flowchart illustrating processing logic of the pumpcontrol logic 84 communicating with the pump. In step 1110, the pumpcontrol logic 84 retrieves setpoint data on the desired pool turnoverrate from the memory (e.g., the desired turnovers in a twenty-four hourperiod). While the desired pool turnover rate can be specified by theuser and stored in the memory, it is noted that the turnover ratesetpoint data it could also be retrieved from the web based on the size,geometry, location of the pool, or any combination thereof. In step1112, the pump control logic 84 retrieves pool configuration data on thevolume of the pool from the memory. The pump control logic 84 then, instep 1114, receives operational data on flow rate from external sensors.In step 1116, the pump control logic 84, using the turnover ratesetpoint data, the pool configuration data, and the external sensordata, calculates the minimum flow rate to achieve the desired poolturnover rate. In step 1118, the pump control logic 84 transmits aninstruction to the pump to operate at a minimum speed to achieve thedesired turnover rate, and the process then returns to step 1114. It isnoted that by this process, the pump control logic 84 could continuouslyadjust the speed of the pump throughout the twenty-four hour periodbased on repeated minimum flow rate calculations.

FIG. 19H is another flowchart illustrating processing logic of the pumpcontrol logic 84 communicating with the pump. In step 3700, the pumpcontrol logic 84 receives an instruction to activate the pump. In step3702, the pump control logic 84 retrieves data on factory specifiedpower parameters from memory. Some examples of power parameters include,but is not limited to, power consumption, current draw, line voltage,line current, ground leakage current, proper bonding, etc. In step 3704,the pump control logic 84 received operational data of the pump,including but not limited to, L1-L2, L1-GND, and L2-GND. In step 3706,the pump control logic 84 compares whether the operational data iswithin the specified operating parameters of the pump. If a positivedetermination is made, the pump control logic 84 proceeds to step 3708where the pump control logic 84 transmits an instruction to activate thepump and the process ends. If a negative determination is made, the pumpcontrol logic 84 proceeds to step 3710 where it decides whether retriesare remaining. If a positive determination is made, the pump controllogic 84 proceeds back to step 3704 where it receives operational dataon the pump. If a negative determination is made, the pump control logic84 proceeds to step 3712 where an error condition is transmitted and theprocess proceeds back to step 3704. The above process can measure allparameters related to electrical power of the pump and can indicate anytype of issue to the user.

FIG. 19I is another flowchart illustrating processing logic of the pumpcontrol logic 84. In step 3714, the pump control logic 84 receives aninstruction to monitor or measure the water level in a pump. In step3716, the pump control logic 84 retrieves data on factory specifiedparameters from memory for the water level in a pump. In step 3718, thepump control logic 84 receives operational water level data in the pumpand in the strainer housing. In step 3720, the pump control logic 84decides whether the water level data is within the factory specifiedoperating parameters. If a positive determination is made, the pumpcontrol logic 84 proceeds to step 3722. If a negative determination ismade, the pump control logic 84 proceeds to step 3728. In step 3722, thepump control logic 84 determines whether the water level has been anissue for a set amount of time. If a negative determination is made, thepump control logic 84 will proceed to step 3724 where the speed of thepump is increased periodically. If a positive determination is made, thepump control logic 84 will proceed to step 3726 where it will indicateto the user that there is an air leak in the suction side plumbing. Instep 3728, the pump control logic 84 will transmit a message to the useror system that the water level data is within the factory specifiedparameters.

FIG. 19J is another flowchart illustrating processing logic of the pumpcontrol logic 84. In step 3730, the pump control logic 84 receives aninstruction to monitor or measure water flow in the pump. In step 3732,the pump control logic 84 retrieves data on the factory specifiedparameters from memory for the water flow in the pump. In step 3740, thepump control logic 84 receives operational flow data in the pump. Instep 3742, the pump control logic 84 determines whether the flow data iswithin the range for the factory specified operational parameters. Step3742 can further be associated with cavitation detection. If a negativedetermination is made, the pump control logic 84 proceeds to steps 3744,and if a positive determination is made, the pump control logic 84proceeds to step 3746. In step 3744, the pump control logic 84determines whether retries are remaining. If there are no retriesremaining, the pump control logic 84 proceeds to step 3748 to transmitan error condition and if there are retries remaining, the pump controllogic 84 proceeds back to step 3740. In step 3746, the pump controllogic 84 transmits a message to the user or the system that the flowdata is within the factory specified parameters.

FIG. 19K is another flowchart illustrating processing logic of the pumpcontrol logic 84. In step 3750, the pump control logic 84 receives aninstruction to monitor or measure the water temperature. In step 3752,the pump control logic 84 retrieves data on the factory specifiedparameters from memory for the water temperature. In step 3754, the pumpcontrol logic 84 receives operational data of water temperature and setpoint temperature data. In step 3756, the pump control logic 84determines whether the water temperature is within the set point and/orfactory parameters. If a positive determination is made, the pumpcontrol logic 84 proceeds to step 3758 where the pump control logic 84transmits a message to the user that the water temperature is within thefactory specified or set point parameters and the process would endthereafter. If a negative determination is made, the pump control logic84 proceeds to step 3760 where the pump control logic 84 performs afunction or changes the pump operation to maintain a factory or setpoint water temperature. In step 3762, the pump control logic 84transmits a message to the user or the system that the pump controllogic 84 has performed some function or changed the pump operation tomaintain a factory or set point water temperature.

FIG. 19L is another flowchart illustrating the processing logic of thepump control logic 84. In step 3764, the pump control logic 84 receivesan instruction to monitor or measure the water chemistry. In step 3766,the pump control logic 84 retrieves data on factory specified parametersfrom memory for the water chemistry. In step 3768, the pump controllogic 84 receives operation data regarding the water chemistry. In step3770, the pump control logic 84 determines whether the water chemistryis within factory specified operating parameters. If a positivedetermination is made, the pump control logic 84 proceeds to step 3772where the pump control logic 84 transmits a message to the user that thewater chemistry is within the specified operating parameters. If anegative determination is made, the pump control logic 84 proceeds tostep 3774 where the pump control logic 84 determines whether the poolchemistry is maintained by a separate device. If a positivedetermination is made, the pump control logic 84 proceeds to step 3776where the pump control logic 84 communicates with the other device todetermine what the device needs for proper operation. If a negativedetermination is made, the pump control logic 84 proceeds to step 3778directly or after step 3776. In step 3778, the pump control logic 84performs a function or changes operation of the pump to maintain theproper water chemistry based on the step 3776 or the set pointparameters retrieved from memory. In step 3780, the pump control logic84 transmits a message to the user or the system that attention may beneeded regarding the water chemistry.

FIG. 19M is another flowchart illustrating the processing logic of thepump control logic 84. In step 3782, the pump control logic 84 receivesan instruction to detect a gasket leak or a shaft seal leak. In step3784, the pump control logic 84 receives operational data from a sensorin the gasket or shaft seal. In step 3786, the pump control logic 84determines if there is a gasket or shaft seal leak. In step 3788, thedetermination is made whether there is in fact a gasket or shaft sealleak. If a negative determination is made, the pump control logic 84proceeds to step 3790 and will transmit a message to the user or systemthat there is no leak. If a positive determination is made, the pumpcontrol logic 84 will transmit a message in step 3792 that the usershould fix the leak.

FIG. 19N is another flowchart illustrating the processing logic of thepump control logic 84. In step 3794, the pump control logic 84 retrievesfactory specified life expectancy data of the shaft seal from memory. Instep 3796, the pump control logic 84 determines the alert threshold forthe life expectancy of the shaft seal. For example, a 90% threshold willalert the user when 90% of the life expectancy of the shaft seal isreached. In step 3798, the pump control logic 84 will receiveoperational data on the shaft seal runtime. In step 3880, the pumpcontrol logic 84 will determine whether the runtime is greater than thethreshold with regard to the life expectancy data. If a negativedetermination is made, the pump control logic 84 will go back to step3798. If a positive determination is made, the pump control logic 84will proceed to step 3882 and transmit a message to the user regardingthe remaining shaft seal shelf life so that the user can proactivelyaddress the shaft seal before a leak occurs.

FIG. 19O is another flowchart illustrating the processing logic of thepump control logic 84. In step 3884, the pump control logic 84 receivesan instruction to determine the cleanliness of the filter. In step 3886,the pump control logic 84 retrieves data on the factory specifiedparameters from memory for debris in the filter and energy consumptionof the pump. In step 3888, the pump control logic 84 receivesoperational data from the sensors in the filter and energy consumptionin the pump. In step 3890, the pump control logic 84 determines thecleanliness of the filter based on the debris in the filter. In step3892, the pump control logic 84 makes a determination as to whether thefilter needs to be serviced. If a negative determination is made, thepump control logic 84 in step 3894 will determine if the energyconsumption of the pump exceeds a factory or user set threshold, and ifit does, the process ends and if it does not, then in step 3896, thepump control logic 84 can adjust the flow to maintain a flow rate basedon the amount of debris in the filter. If a positive determination ismade in step 3892, the pump control logic 84 in step 3898 will transmita message to the user or system to service the filter (e.g., clean thecartridge). In step 3900, the pump control logic 84 will determinewhether the user took action to service the filter. If a negativedetermination is made, the pump control logic 84 will proceed to step3902 to adjust the pump operation to maintain a flow rate needed by therest of the system 10. If a positive determination is made, the pumpcontrol logic 84 will skip step 3902 and will proceed directly back tostep 3888.

FIG. 19P is a flowchart illustrating processing steps carried out by thepump control logic 84 for periodically testing and advising the user ofthe variance from a “clean filter” state. For example, pump controllogic 84 can periodically enter a “test” filter system state where thepool/spa equipment go to predetermined positions/states/speeds fortesting the filter. In step 3904, pump control logic 84 monitors for a“clean filter” condition (e.g., operational data from filter or inputfrom a user, servicer, or installer, etc.). For example, a skimmer couldcommunicate (using and of the data communication protocols disclosedherein) to pump control logic 84 that the filter has been cleaned orreplaced, or the user could utilize an input device to indicate to pumpcontrol logic 84 that the filter has been cleaned or replaced. In step3906, pump control logic 84 determines if a “clean filter” condition hasbeen received. If a negative determination is made in step 3906, pumpcontrol logic 84 returns to step 3904. If a positive determination ismade in step 3906, pump control logic 84 proceeds to step 3908, wherepump control logic 84 retrieves “test” filter system state setpoints(e.g., valve position, pump speed, etc.) from the memory. In step 3910,pump control logic 84 transmits an instruction to the installed pool/spaequipment to operate at the “test” setpoints. In step 3912, pump controllogic 84 receives current operational date from the filter. In step3914, pump control logic 84 determines if there are (1) retriesremaining. If a positive determination is made in step 3914, pumpcontrol logic 84 proceeds to step 3916 and saved the “clean filter”operational data to the memory. Thus, after pump control logic 84receives a “clean filter” condition, the pool/spa equipment enters a“test” system state and records the current operational data from thefilter to the memory as a baseline measurement for future comparison. Ifa negative determination is made in step 3914, pump control logic 84proceeds to step 3918, where pump control logic 84 computes the variancefrom the “clean filter” operational data. Optionally, in step 3920, pumpcontrol logic 84 could transmit a message to (e.g., advise) the user(e.g., “Filter Health ##%). In step 3922, pump control logic 84transmits instructions to the installed pool/spa equipment to resumenormal operation. In step 3924, the logic is delayed for X seconds,wherein X is any suitable integer (e.g., 5, 10, 3600, etc.), and theprocess then reverts to step 3908.

FIG. 19Q is a flowchart illustrating processing steps carried out by thepump control logic 84 for determining if debris is interfering withoperation of the pump. For example, in step 3926, pump control logic 84retrieves setpoint data on the acceptable debris level at a pumpcomponent(s) from memory. This setpoint data could be provided by thepump manufacturer, or alternatively, could be set by the user. In step3928, pump control logic 84 receives operational data on debris at thepump component(s). It is noted that the pump control logic could monitorone or more individual components (e.g., the impeller, shaft seal, andmotor shaft) of the pump and could further monitor one or moreparameters associated with each component (e.g., the level of debris inthe impeller and/or rotational speed of the impeller). For example, pumpcontrol logic 84 could determine if there is debris trapped in theimpeller by monitoring motor current, motor power consumption, or byusing an accelerometer to determine an increase in motor vibration. Instep 3930, pump control logic 84 determines if the level of debris atthe pump component(s) is below the setpoint. If a positive determinationis made in step 3930, pump control logic 84 returns to step 3928. If anegative determination is made in step 3930, pump control logic 84proceeds to step 3932, where pump control logic 84 determines if thereare retries remaining. If a positive determination is made in step 3932,pump control logic 84 returns to step 3928. If a negative determinationis made in step 3932, pump control logic 84 proceeds to step 3934, wherepump control logic 84 transmits an instruction to the user (e.g., “CleanImpeller”). While the foregoing process has been discussed in terms ofmonitoring debris, it is also contemplated that pump control logic 84can monitor additional parameters and alert the user when theseparameters have exceeded their respective setpoints using similarprocessing steps. For example, in addition to monitoring the level ofdebris trapped in the impeller, discussed above, pump control logic 84could also monitor rotational speeds of the components, determinewhether debris is causing physical interference with the rotation of theimpeller, shaft seal, or motor shaft, and then transmit an instructionto the user to address the issue (e.g., “Binding in Impeller—ClearDebris”). For example, pump control logic 84 could monitor motorcurrent, power consumption, and receive operational data from anaccelerometer to determine an increase in motor vibration (therebyindicating physical interference/binding of the impeller). Furtherstill, instead of alerting the user when an operational parameter hasexceeded its respective operational setpoint, pump control logic 84could alter the operation of the pump to restore normal operation. Forexample, in the case of a variable speed drive, pump control logic 84could monitor the humidity of the air inside the variable speed driveenclosure and adjust its operating condition to minimize humidity,thereby increasing reliability. For example, pump control logic 84 couldreceive operational data from a humidity sensor located within thevariable speed drive enclosure. If pump control logic 84 determines thatthe humidity within the variable speed drive enclosure is above amaximum setpoint value, pump control logic 84 could transmit aninstruction to the variable speed drive to increase the speed ofoperation, thereby drying out the air within the enclosure (due toincreased temperature of certain electrical components within theenclosure precipitated by the increase in operating speed).

FIGS. 19R and 19S are flowcharts illustrating processing steps carriedout by the pump control logic 84 for assisting the user in determiningthe pump setpoints that should be used based on the user's installedequipment and preferences. It is contemplated that pump control logic 84could include a wizard-based application that is accessible by the uservia a human machine interface installed on the pump, centralizedpool/spa control system, smartphone/device, web browser, or any othermeans for communicating with the system, disclosed herein. For example,in step 3936, pump control logic 84 prompts the user to specifyinstalled pool/spa equipment and operational parameters therefore (e.g.,minimum skimmer speed/flow, number of skimmers, minimum heaterspeed/flow, has heater, heat pump, solar, etc.). Alternatively, theapplication could utilize widely-known bar scanning technology (e.g.,utilizing/in combination with a camera of smart device), enabling theuser to simply scan the barcode of each piece of installed equipmentthereby avoiding the necessity of manual entry. Pump control logic 84could then retrieve additional information (e.g., specifications,setpoints, warranty information, etc.) on the scanned equipment from aremote location (e.g., a remote server) using any suitable communicationprotocol described herein (e.g., accessing the internet vial a home WiFirouter). In step 3938, pump control logic 84 prompts the user to specifythe desired pool/spa activities (e.g., bathing, swimming, water sports,etc.). For example, pump control logic 84 could present the user with alist of pre-programmed activities from which to choose, the user couldsearch a database of pre-programmed activities, or the user couldprogram custom activities and save the same to memory for laterretrieval and use. In step 3940, pump control logic 84 determines anacceptable range of speed setpoints for the pump (e.g., speed/flow forall pump related features). In step 3942, pump control logic 84 presentsthe acceptable speed presets to the user and then prompts the user toselect desired/optimal setpoints for the pump and in step 3944, pumpcontrol logic 84 stores the user selected pump setpoints to memory andthe process then ends. Optionally, as shown in steps 3950-3954, thewizard could assist the user in selecting the desired/optimal pumpsetpoints by stepping through multiple actual pump speeds/flows so thatthe user can “choose” a desired speed/flow while observing the effect ofthe different speeds/flows on the actual pool/spa environment. Forexample, after determining the acceptable speed setpoints for the pumpin step 3940, pump control logic 84 could then proceed to step 3950,where an instruction is transmitted to the pump to operate at an(acceptable) first (1st) speed. In step 3952, pump control logic 84transmits an instruction to the pump to operate at an (acceptable)second (2nd) speed. In step 3954, pump control logic 84 transmits aninstruction to operate the pump at another (acceptable) speed. Pumpcontrol logic 84 then proceeds to step 3942, described hereinabove. Itis noted that any number of acceptable speeds can be presented to theuser. Accordingly, because the application could be run, viewed, oraccessed on a mobile device (e.g., not tethered to a specific location)the wizard/application enables the user to stand poolside, watchingfeatures as speeds/flows are automatically displayed by pump controllogic 84 or selected by the user/installer for each prompt. Thewizard/application also enables the user/installer to stand at theequipment pad, watching equipment function (e.g., heater ignition) asthe pump steps through various speeds/flows. Optionally, as shown insteps 3946 and 3948, pump control logic 84 could sense and/or advise ofa maximum speed/flow beyond which the pump cavitates or reaches anundesirable inflection point in energy consumption/efficiency. Forexample, pump control logic 84 could determine the maximum speed/flowbeyond which the pump cavitates using operational data received from anaccelerometer, optical sensor, or other means. In step 3946, pumpcontrol logic 84 determines if the user selected setpoints are causingpump cavitation. If a negative determination is made in step 3946, pumpcontrol logic 84 proceeds to step 3944, discussed hereinabove. If apositive determination is made in step 3946, pump control logic 84proceeds to step 3948, where an alert is transmitted to the user.Alternatively, the system could determine speeds at which the pumpcavitates beforehand and remove the speeds at which the pump cavitatesfrom the acceptable setpoints that are presented to the user in step3942. Also optionally, pump control logic 84 could suggest to the useralternative modes of operation (e.g., other than that selected by theuser) that either improve the reliability of one or more pieces ofinstalled pool/spa equipment, or improve the efficiency of one or morepieces of installed pool/spa equipment, individually, or as a wholesystem. For example, other pieces of installed pool/spa equipment couldcommunicate with the pump control logic 84 and advise of optimumperformance criteria. This logic could reside in other installedpool/spa equipment and be communicated to the pump, or the logic couldbe contained within the pump itself.

FIG. 19S is a flowchart illustrating processing steps carried out by thepump control logic 84 for automatically determining the pump setpointsthat should be used based on the user's installed equipment andpreferences. According to this embodiment, pump control logic 84 is ableto “auto detect” equipment that is installed and automatically determinehow the system should be run based on a variety of optimization choices(e.g., energy consumption, water feature performance, heatingpreferences, etc.). In step 3956, pump control logic 84 prompts the userto specify desired pool/spa activities (e.g., bathing, swimming, watersports, etc.). As described above, pump control logic 84 could presentthe user with a list of pre-programmed activities from which to choose,the user could search a database of pre-programmed activities, or theuser could program custom activities and save the same to memory forlater retrieval and use. In step 3958, pump control logic 84 receivesoperational data from pool/spa equipment. In step 3960, pump controllogic 84 determines what pool/equipment has been installed, using thereceived operational data therefrom. In step 3962, pump control logic 84retrieves the installed equipment setpoints (e.g., minimum flow and/orpressure for heater operation) from memory. Using the equipmentsetpoints, in step 3964, pump control logic 84 then determines theoptimal speed setpoints for the pump based on all of the installedequipment. For example, pump control logic 84 could estimate thenecessary pump speed. Alternatively, pump control logic 84 could stepthrough various speeds/flows and receive operational data from theinstalled equipment (e.g., heaters, water features, valves, etc.) whenthere is sufficient flow and/or pressure for operation. Pump controllogic 84 then proceeds to step 3966, where pump control logic 84 storesthe pump setpoint data to memory, and then the process ends. It is alsocontemplated that, in addition to pump speed, pump control logic 84could capture the correct valve positions for delivering the requiredflow and/or pressure. Pump control logic 84 could also search forsignals from any smart utility, radio frequency, WiFi, cellular,Bluetooth, geo-positioning, etc. that provides data for energy costs,energy discount periods, peak demand, etc. (see FIG. 33T). Pump controllogic 84 could then use this data to optimize performance and/or energycosts.

In addition to the foregoing, the application/wizard could walk the userthrough multiple steps for different installation modes, such as relaycontrol or connection to pool/spa automation controllers (e.g., Haywardautomation), and could indicate supported software levels of thepool/spa automation controllers. The application could also accessdealer-defined programs/schedules via the cloud and then download theprograms/scheduled to the pump for local installation. Although pumpcontrol logic 84 could operate according to a dealer-defined oruser-defined schedule, pump control logic 84 is capable of determiningwhen pool/spa equipment requires a flow that deviates from the normalschedule (e.g., due to user interaction, weather patterns, addition ofpool/spa equipment, etc.) and automatically adjusting the pumpflow/speed therefore. The application could further provide theuser/installer with answers to frequently asked questions (i.e., FAQs)for the installation process as well as for individual pieces ofpool/spa equipment, installation videos (either stored locally or aslinks accessible through communication protocols discussed herein), andcan serve as a dynamic “quick start guide.” Pump control logic 84 couldalso serve as an Automated Engineered pool system solution for areashaving regulations, such as in Florida (e.g., reports and/or calculatestotal dynamic head and/or flow). As described herein, an “AutomatedEngineered” pool system solution is one that automatically derives TotalDynamic Head (“TDH”) by measuring key metrics. For example, it couldmeasure suction head (negative pressure) on the vacuum side of the pumpand measure the pressure head on the pressure side of pump, bothmeasurement devices being integral or adjacent to the pump, to deriveTotal Dynamic Head. Further, an overall System Curve (TDH vs. flow)could be estimated or calculated from a single point or generated whenmeasured at multiple speeds when using a multi-speed pump.

FIG. 19T is a flowchart illustrating processing steps carried out by thepump control logic 84 for recording baseline performance data for futurereference. More specifically, once the initial installation of the poolequipment is complete (see FIGS. 19R and 19S), pump control logic 84 canrecord initial operational data from the installed equipment. Forexample, in step 3968, pump control logic 84 determines if the user hascompleted the installation wizard (see FIGS. 19R and 19S). If a negativedetermination is made in step 3968, pump control logic 84 repeats step3968. If a positive determination is made in step 3968, pump controllogic 84 proceeds to step 3970, where pump control logic 84 receivesoperational data from installed pool/spa equipment (e.g., pumpperformance, motor performance, sound levels, etc.). In step 3972, pumpcontrol logic 84 saves the operational data to the memory as baselineperformance data. This baseline performance data could be used, forexample, in combination with the health monitoring pump control logic 84processing steps shown in FIG. 19D or as illustrated in FIG. 19U,discussed hereinbelow.

FIG. 19U is a flowchart illustrating processing steps carried out by thepump control logic 84 for determining pump health by comparing baselineperformance data and current operational data. In step 3974, pumpcontrol logic 84 retrieves baseline performance data (e.g., pumpperformance, motor performance, sound levels, etc.) from the memory. Instep 3976, pump control logic 84 determines an alert threshold (e.g.,performance down 10%, sound level increase 10%, etc.). In step 3978,pump control logic 84 receives current operational data from theinstalled pool/spa equipment and/or other connected devices (e.g., soundlevel from microphone located at the pump). In step 3980, pump controllogic 84 calculates the change (e.g., delta) from the baselineperformance data. In step 3982, pump control logic 84 determines if thechange from baseline performance is greater than the threshold. If anegative determination is made in step 3982, pump control logic 84returns to step 3978. If a positive determination is made in step 3982,pump control logic 84 proceeds to step 3984, where pump control logic 84determines if there are retries remaining. If a positive determinationis made in step 3984, pump control logic 84 returns to step 3978. If anegative determination is made in step 3984, pump control logic 84proceeds to step 3986, where an alert is transmitted to the user (e.g.,“Service Pump”). The process then ends.

FIG. 19V is a flowchart illustrating processing steps carried out by thepump control logic 84 for determining current weather conditions. Instep 3988, pump control logic 84 receives an IP address from a smartdevice on a local network. In step 3990, pump control logic 84 receiveslocation data based on the IP address (e.g., web data/geolocationprovider). In step 3992, pump control logic 84 receives web data oncurrent weather conditions (based on ZIP code, location/address, or GPScoordinates, discussed hereinbelow). It is noted that pump control logic84 can receive web data through any wired and/or wireless communicationprotocols disclosed herein. Current weather conditions can include, forexample, temperature, precipitation, wind speed, wind direction, etc.Web data on current weather conditions could also include live 3rd partydata, for example, live weather maps of precipitation and cloud cover.In step 3994, pool pump control logic 84 saves the current weatherconditions to the memory for later retrieval. In step 3996, pump controllogic 84 is delayed by X seconds, wherein X is any suitable integer(e.g., 5, 10, 3600, etc.) and then the process returns to step 3988.Optionally, in step 3998, pump control logic 84 could transmit aninstruction to the user to enter a ZIP code via a user interface deviceand in step 4000, pump control logic 84 could receive the ZIP code datafrom the user interface device. In step 4002, pump control logic 84could also/alternatively receive GPS data from a smart device on thelocal network (e.g., smart phone connected to home WiFi). While theforegoing is discussed in connection with pump control logic 84obtaining current weather information from a remote source (e.g., theinternet), it is contemplated that pump control logic 84 could obtaincurrent weather information from local sources as well (e.g., receiveoperational data from local temperature sensors/thermocouples, windmeters/anemometers, rain gauges/ombrometers, etc.).

Pump control logic 84 can receive web data on future/forecasted weatherconditions (e.g., 7-day forecasts, almanacs, etc.), in addition tocurrent weather forecasts. FIG. 19W is a flowchart illustratingprocessing steps carried out by the pump control logic 84 fordetermining forecasted weather conditions. Although the processing stepsshown in FIGS. 19V and 19W are discussed sequentially, it should beunderstood that the processing steps carried out by pump control logic84 in FIGS. 19V and 19W could operate in parallel, or alternatively, inseries with each other. In step 4004, pump control logic 84 receives anIP address from a smart device on a local network. In step 4006, pumpcontrol logic 84 receives location data based on the IP address (e.g.,web data/geolocation provider). In step 4008, pump control logic 84receives web data on forecasted weather conditions (based on ZIP code,location/address, or GPS coordinates, discussed hereinbelow). It isnoted that pump control logic 84 can access receive web data through anywired and/or wireless communication protocols disclosed herein.Forecasted weather conditions can include, for example, temperature,precipitation, wind speed, wind direction, etc. Web data on forecastedweather conditions could also include live 3rd party data, for example,live weather maps of precipitation and cloud cover. In step 4010, poolpump control logic 84 saves the forecasted weather conditions to thememory for later retrieval. In step 4012, pump control logic 84 isdelayed by X seconds, wherein X is any suitable integer (e.g., 5, 10,3600, etc.) and then the process returns to step 4004. Optionally, instep 4014, pump control logic 84 could transmit an instruction to theuser to enter a ZIP code via a user interface device and in step 4016,pump control logic 84 could receive the ZIP code data from the userinterface device. In step 4018, pump control logic 84 couldalso/alternatively receive GPS data from a smart device on the localnetwork (e.g., smart phone connected to home WiFi).

FIG. 19X is a flowchart illustrating processing steps carried out bypump control logic 84 for instructing the pump to run higher loadoperating modes during cooler times of the day if higher than normaltemperatures are expected. In step 4020, pump control logic 84 receivescurrent date and time data (e.g., from internal clock, as web data,etc.). In step 4022, pump control logic 84 retrieves forecasted weatherconditions (e.g., hourly forecast) for the current date. The forecastedweather conditions can be obtained by way of the process describedherein, in connection with FIG. 19W. In step 4024, pump control logic 84retrieves the pump schedule for the current date from the memory. Instep 4026, pump control logic 84 identifies periods (e.g., times of day)of high load operating conditions in the pump schedule. In step 4028,pump control logic 84 identifies periods of forecasted high temperatures(e.g., times of day above 80° F.). In step 4030, pump control logic 84determines if the periods of forecasted high temperatures and high loadconditions coincide. If a negative determination is made (e.g., the pumpwill not be running at a high-load during periods of high temperature)in step 4030, pump control logic 84 returns to step 4020. If a positivedetermination is made (e.g., the pump will be running at a high-loadduring periods of high temperature) in step 4030, pump control logic 84proceeds to step 4032, where periods of forecasted low temperatures(e.g., times of day below 70° F.) are identified. Pump control logic 84then proceeds to step 4034, where the pump schedule is modified so thatthe higher load operating modes run during periods of forecasted lowtemperatures. In step 4036, pump control logic 84 saves the modifiedpump schedule to the memory. Pump control logic 84 then returns to step4020.

FIG. 19Y is a flowchart illustrating processing steps carried out bypump control logic 84 for automated operation of pool devices based oncurrent weather conditions (e.g., periods of heavy rain). In step 4038,pump control logic 84 retrieves current weather conditions (e.g.,precipitation, wind speed, etc.) data from the memory. The currentweather conditions can be obtained by way of the process describedherein, in connection with FIG. 19V. In step 4040, pump control logic 84retrieves maximum precipitation setpoint data from memory. In step 4042,pump control logic 84 determines if the current amount of precipitationis above the maximum precipitation setpoint. If a positive determinationis made, the process proceeds to step 4044, where pump control logic 84transmits an instruction to the pump to suspend operation (e.g.,preventing damage due to water ingress). Optionally, in step 4046, pumpcontrol logic 84 could transmit an instruction to disconnect power tohigh voltage circuits. The process then reverts to step 4038. If anegative determination is made in step 4042, the process proceeds tostep 4048, where pump control logic 84 determines if the operation ofany pool devices (e.g., pump, smart relays, smart circuit breaker, etc.)has been altered due to the weather condition (e.g., heavyprecipitation). If a negative determination is made, the process revertsto step 4038. If a positive determination is made, the process proceedsto step 4050, where pump control logic 84 transmits an instruction torevert to regular operation of the pool device(s). Optionally, in step4052, pump control logic 84 could transmit a message to the user (e.g.,“precipitation subsided”). The process then reverts to step 4038. Inaddition to the foregoing, it is also contemplated that pump controllogic 84 could suspend operation in advance of periods of heavyprecipitation by monitoring the forecasted weather conditions andsuspending operation before the precipitation begins.

FIG. 19Z is a flowchart illustrating processing steps carried out by thepump control logic 84 for automated operation of pool devices based oncurrent weather conditions (e.g., high winds). In step 4054, pumpcontrol logic 84 retrieves current weather conditions (e.g., wind speed)data from the memory. The current weather conditions can be obtained byway of the process described herein, in connection with FIG. 19V. Instep 4056, pump control logic 84 retrieves maximum wind speed setpointdata from memory. In step 4058, pump control logic 84 determines if thecurrent wind speed is above the maximum wind speed setpoint. If apositive determination is made, the process proceeds to step 4060, wherepump control logic 84 transmits an instruction to the pump to increasecirculation, thereby providing better skimmer performance. Optionally,in step 4062, pump control logic 84 could transmit an instruction toactuate a smart valve(s). As referred to herein, smart valves (or smartvalve actuators) include an actuator which rotates valves in response toa control signal from pool control logic 70 (e.g., water feature controllogic 72, valve actuator control logic 74, cleaner control logic 76,lighting control logic 78, heater control logic 80, chemistry automationcontrol logic 82). Accordingly, smart valves could be utilized in anyapplication that requires the automated operation of valves in apool/spa environment. For example, actuation of smart valves by pumpcontrol logic 84 could thereby automatically engage pool/spa operation,solar heating, pool cleaners, water features, provide additional flow tothe skimmer(s), and/or decrease flow from the suction outlets duringperiods of high winds. Also optionally, in step 4064, pump control logic84 could further detect accumulated debris at pool/spa equipment (e.g.,motor fan inlet) and in step 4066, pump control logic 84 could transmitan alert to the user (e.g., “Remove Debris from Motor Fan Inlet”). Theprocess then reverts to step 4054. If a negative determination is madein step 4058, the process proceeds to step 4068, where pump controllogic 84 determines if the operation of any pool devices has beenaltered due to the weather condition (e.g., high winds). If a negativedetermination is made, the process reverts to step 4054. If a positivedetermination is made, the process proceeds to step 4070, where pumpcontrol logic 84 transmits an instruction to revert to regular operationof the pool device(s). Optionally, in step 4072, pump control logic 84could transmit a message to the user (e.g., “Wind Has Subsided”). Theprocess then reverts to step 4054.

FIG. 19AA is a flowchart illustrating processing steps carried out bypump control logic 84 for automatically adjusting pump speed/flow forcleaning a pool/spa in response to a weather condition (e.g., highwinds). More specifically, pump control logic 84 can manage and/orrespond to heavy debris/particulate sources (e.g., trees, vegetation,dust, etc.) up-wind of the pool/spa area by adjusting the pump speed orflow, based on wind speed and/or direction. For example, in step 4074,pump control logic 84 retrieves current weather conditions (e.g., windspeed, direction) data from the memory. The current weather conditionscan be obtained by way of the process described herein, in connectionwith FIG. 19V. In step 4076, pump control logic 84 retrieves maximumwind speed setpoint data from memory. In step 4078, pump control logic84 determines if the current wind speed is above the maximum wind speedsetpoint. If a positive determination is made, the process proceeds tostep 4080, where pump control logic 84 retrieves skimmer location datafrom the memory. The skimmer location data can be obtained by way of theprocess described herein, in connection with FIG. 33A. In step 4082,pump control logic 84 determines the most downwind skimmer(s). In step4084, pump control logic 84 transmits an instruction to increase theflow to the downwind skimmer(s) and the process then reverts to step4074. The flow to the downwind skimmer(s) can be increased in variousways, including, but not limited to, transmitting an instruction to thepump to increase the pump speed, and transmitting an instruction to asmart valve to actuate, thereby adjusting to a position that optimizesflow to the skimmer. Optionally, in step 4086, pump control logic 84could transmit an instruction to deactivate or reduce water features(e.g., decrease pump speed, adjust valve positions to reduce flow,etc.), thereby preventing splash-out. If a negative determination ismade in step 4078, the process proceeds to step 4088, where pump controllogic 84 determines if the operation of any pool devices (e.g., pump,smart valves, etc.) have been altered due to the weather condition(e.g., high winds). If a negative determination is made in step 4088,the process reverts to step 4074. If a positive determination is made instep 4088, pump control logic 84 proceeds to step 4090, where pumpcontrol logic 84 transmits an instruction to revert to regular operationof the pool device(s). Optionally, in step 4092, pump control logic 84could transmit a message to the user (e.g., “Wind Has Subsided”). Theprocess then reverts to step 4074.

FIG. 19AB is a flowchart illustrating processing steps carried out bypump control logic 84 for automatically adjusting operation of the pumpin response to weather conditions (e.g., ambient temperature, windspeed, and/or wind chill) to provide freeze protection. This enablespump control logic 84 to provide a lower, more energy efficient setpoint(e.g., minimum speed and temperature). In step 4094, pump control logic84 retrieves current weather conditions data from memory (e.g., ambienttemperature, wind speed, and/or wind chill). The current weatherconditions can be obtained by way of the process described herein, inconnection with FIG. 19V. In step 4096, pump control logic 84 receivesoperational data from the pump (e.g., pump speed/flow). In step 4098,pump control logic 84 determines if there is a freeze risk based on thecurrent weather conditions and the speed/flow of the pump. If a negativedetermination is made (e.g., there is no freeze risk) in step 4098, pumpcontrol logic 84 returns to step 4094. If a positive determination ismade (e.g., there is a freeze risk) in step 4098, pump control logic 84transmits an instruction to the pump to increase speed/flow. Pumpcontrol logic 84 then reverts to step 4094.

FIG. 19AC is a flowchart illustrating processing steps carried out bypump control logic 84 for adjusting the operation of the pump to meetthe needs of other pool/spa equipment. For example, pump control logic84 could increase the speed/flow of the pump in response to an increasein the output of the heater, necessitated by a drop in ambienttemperature (e.g., heater output increased to maintain desired pool/spatemperature). In step 4102, the heater output is increased (e.g., due toa drop in ambient temperature). In step 4104, pump control logic 84receives operational data from the heater (e.g., current or requestedBTU output). In step 4106, pump control logic 84 determines if anincrease in pump speed/flow is required based on the operational datareceived from the heater. If a negative determination is made in step4106, pump control logic 84 returns to step 4104. If a positivedetermination is made in step 4106, pump control logic 84 proceeds tostep 4108, where an instruction is transmitted to the pump to increasespeed/flow. Pump control logic 84 then returns to step 4104. While theforegoing process steps are discussed in connection with the pumpcontrol logic 84 adjusting the operation of the pump in response to theneeds of the heater during a drop in ambient temperature, it iscontemplated that pump control logic 84 can adjust the operation of thepump in response to the needs of any of the installed pool/spa equipmentdisclosed herein.

FIG. 19AD is a flowchart illustrating processing steps carried out bythe pump control logic 84 for determining and running a mode ofoperation based on the time of day (e.g., daytime or evening) or time ofyear (e.g., season). In step 4110, pump control logic 84 receives an IPaddress from a smart device on a local network. In step 4112, pumpcontrol logic 84 receives location data based on the IP address (e.g.,web data/geolocation provider). In step 4114, pump control logic 84receives web data on sunrise/sunset times (based on ZIP code,location/address, or GPS coordinates, discussed hereinbelow). It isnoted that pump control logic 84 can receive web data through any wiredand/or wireless communication protocols disclosed herein. In step 4116,pump control logic 84 saves the sunrise/sunset data to the memory forlater retrieval. In step 4118, pump control logic 84 receives currenttime and date data (e.g., from web or internal clock). In step 4120,pump control logic 84 determines if the current time is between sunriseand sunset (e.g., daytime). If a positive determination is made in step4120, pump control logic 84 proceeds to step 4122, where pump controllogic 84 retrieves equipment setpoints for a daytime operation mode(e.g., pump speed/flow during the day). In step 4124, pump control logic84 transmits instructions to installed pool/spa equipment to operate atthe retrieved setpoints and then pump control logic 84 returns to step4118. If a negative determination is made in step 4120, pump controllogic 84 proceeds to step 4126, where pump control logic 84 retrievesequipment setpoints for an evening operation mode (e.g., pump speed/flowduring the evening) and then pump control logic 84 proceeds to step4124, discussed hereinabove. While the foregoing process steps have beendiscussed in terms of selecting a mode of operation based on the time ofday, it is also contemplated that pump control logic 84 could select themode of operation based on the time of year (e.g., season). Furthermorethe modes of operation could be pre-programed (e.g., default seasonalmodes of operation/programming provided by the manufacturer, poolprofessional (e.g., service technician, builders, installers, etc.)) oruser-defined (e.g., customized modes of operation based on the time ofday or season). Optionally, in step 4128, pump control logic 84 couldtransmit an instruction to the user to enter a ZIP code via a userinterface device and in step 4130, pump control logic 84 could receivethe ZIP code data from the user interface device. In step 4132, pumpcontrol logic 84 could also/alternatively receive GPS data from a smartdevice on the local network (e.g., smart phone connected to home WiFi).

FIG. 19AE is a flowchart illustrating processing steps carried out bythe pump control logic 84 for determining and running a mode ofoperation based on the amount of sun exposure. In step 4134, pumpcontrol logic 84 receives operational data from an ambient light sensor(e.g., sun exposure). In step 4136, pump control logic 84 retrievesambient light setpoints (e.g., minimum and/or maximum sun exposure formodes of operation) from the memory. In step 4138, pump control logic 84determines if the current ambient light is above the minimum setpoint.Conversely, pump control logic 84 could also determine if the currentambient light is below the below the minimum setpoint or above or belowthe maximum setpoint, thereby determining high or low sun exposure. If apositive determination is made in step 4138, pump control logic 84proceeds to step 4140, where pump control logic 84 retrieves equipmentsetpoints (e.g., pump speed/flow) for a high sun exposure operationmode. If a negative determination is made in step 4138, pump controllogic 84 proceeds to step 4144, where pump control logic 84 retrievesequipment setpoints (e.g., pump speed/flow) for a low sun exposureoperation mode. In step 4142, pump control logic 84 transmits aninstruction(s) to installed pool/spa equipment to operate at theretrieved setpoints for the current operation mode and then the processreverts to step 4134.

FIG. 19AF is a flowchart illustrating processing steps carried out bypump control logic 84 for minimizing sound pressure when pool occupantsare in close proximity to a pumping system. In step 4146, pump controllogic 84 receives operational data from a proximity sensor. In step4148, pump control logic 84 determines if there are pool occupants inclose proximity. If a positive determination is made in step 4148, pumpcontrol logic 84 proceeds to step 4150, where pump control logic 84retrieves maximum ambient noise setpoint data for pump operation fromthe memory (e.g., maximum allowable decibels when occupants are in closeproximity to the pump). In step 4152, pump control logic 84 receivesambient noise operational data (e.g., measured decibels from amicrophone positioned at or near the pump). In step 4154, pump controllogic 84 determined if the measured ambient noise is above the maximumambient noise setpoint. If a positive determination is made at step4154, pump control logic 84 proceeds to step 4156, where pump controllogic 84 transmits an instruction to the pump to decrease output (e.g.,reduce speed by 5%), thereby reducing the decibels generated by thepump. Pump control logic 84 then reverts to step 4152. If a negativedetermination is made at step 4154, pump control logic 84 reverts tostep 4152. If a negative determination is made at step 4148, pumpcontrol logic 84 proceeds to step 4158, where pump control logic 84determines if the operation of the pumping system has been altered(e.g., the output of the pump was previously reduced from normaloperating levels). If a negative determination is made in step 4158,pump control logic 84 reverts to step 4146. If a positive determinationis made in step 4158, pump control logic 84 proceeds to step 4160, wherepump control logic 84 transmits an instruction to the pump systemequipment to resume normal operation. Thus, pump control logic 84 couldreduce the output of the pumping system to reduce decibel levels whenpool occupants are detected, but resume normal operation when pooloccupants are no longer present.

FIG. 19AG is a flowchart illustrating processing steps carried out bypump control logic 84 for addressing alert conditions. Morespecifically, pump control logic 84 could ask the user if it shouldautomatically address the issue and if it should automatically addressthe issue in the future. In step 4162, pump control logic 84 transmitsan alert and recommendation to the user (e.g., “Excessive MotorHeating—Reduce Speed”). The alert and recommendation can be generated asdescribed herein, in connection with FIG. 19D. In step 4164, pumpcontrol logic 84 prompts the user for automatic system implementation ofthe recommendation (e.g., “Reduce Motor Speed?—Y/N”). In step 4166, pumpcontrol logic 84 determines if the user elects automatic implementationof the recommendation. If a negative determination is made in step 4166,the process ends. If a positive determination is made in step 4166, pumpcontrol logic 84 proceeds to step 4168, where pump control logic 84prompts the user for automatic implementation of the recommendation forsubsequent similar alerts (e.g., “Automatically Address This Alert FromNow On?”). In step 4170, pump control logic 84 determines if the userelects automatic implementation for subsequent alerts. If a positivedetermination is made in step 4170, pump control logic 84 saves the userpreference to memory. In step 4174, pump control logic 84 transmits aninstruction to the installed pool/spa equipment to implement therecommendation (e.g., reduce motor speed). If a negative determinationis made in step 4170, pump control logic 84 proceeds to step 7174 andthe process then ends.

FIG. 19AH is a flowchart illustrating processing steps carried out bypump control logic 84 for automatically advising the user of nearby poolservice companies when the pumping system, or any other installedpool/spa equipment, needs attention. It is contemplated that pumpcontrol logic 84 could notify the user by way of an on-board indicatorprovided on the pumping system and/or by way of a notification “pushed”out to other devices (e.g., smart devices) via any of the communicationprotocols disclosed herein. Pump control logic 84 could alsoautomatically notify a user's preferred pool service provider when thepumping system, or any other installed pool/spa equipment, needsattention. In step 4176, pump control logic 84 receives operational datafrom the installed pool/spa equipment (e.g., temperature of pump motor).In step 4178, pump control logic 84 determines if any of the installedpool/spa equipment is in need of service. Pump control logic 84 candetermine if any of the pool/spa equipment is in need of service by wayof a similar process as described herein, in connection with FIG. 19D.If a negative determination is made in step 4178, pump control logic 84returns to step 4176. If a positive determination is made in step 4178,pump control logic 84 proceeds to step 4186, where pump control logic 84determines the location of the pool/spa. The location of the pool/spacan be determined by way of a similar process as described herein, inconnection with FIG. 19V. In step 4188, pump control logic 84 receivesweb data on local pool service providers (e.g., pool service providersin close proximity to the pool/spa location). In step 4190, pump controllogic 84 prompts the user to select a preferred service provider (e.g.,from a list of the local pool service providers. In step 4192, pumpcontrol logic 84 stores the selected service provider to memory. In step4194, pump control logic 84 transmits an alert to the selected serviceprovider (e.g., skimmer filter at [address] requires replacement).Optionally, pump control logic 84 could automatically notify apreviously selected preferred service provider when any of the pool/spaequipment needs attention. For example, in step 4180, pump control logic84 could determine if a pool service provider was previously selected.If a negative determination is made in step 4180, pump control logic 84proceeds to step 4186. If a positive determination is made in step 4180,pump control logic 84 proceeds to step 4182, where pump control logic 84retrieves the previously selected service provider data from the memory.In step 4184, pump control logic 84 transmits an alert to the previouslyselected service provider (e.g., skimmer filter at [address] requiresreplacement). Pump control logic 84 then returns to step 4176. FIG. 19AIis another flowchart illustrating the processing logic of the pumpcontrol logic 84. In step 4300, the pump control logic 84 receives aninstruction to monitor the status of the filter. In step 4302, the pumpcontrol logic 84 retrieves data on the factory specified parameters frommemory for flow and/or pressure drop in the pump. In step 4304, the pumpcontrol logic 84 receives operational data from a sensor regarding theflow and/or pressure drop in the pump. In step 4306, the pump controllogic 84 determines the pressure drop and/or flow rate in the pump. Instep 4308, the pump control logic 84 determines whether the pressureand/or flow rate is within the factory specified parameters. If apositive determination is made, the process ends, and if a negativedetermination is made, the pump control logic 84 proceeds to step 4310where the appropriate valves are actuated to initiate backwashfiltering.

FIG. 19AJ is another flowchart illustrating the processing logic of thepump control logic 84. In step 4312, the pump control logic 84 receivesan instruction to monitor the debris on the surface of the pool. In step4314, the pump control logic 84 receives operational data from thevision system which provides the location and amount of debris inlocations of the pool surface. In step 4316, the pump control logic 84determines the location of high debris area on the pool surface. In step4318, the pump control logic 84 alters the position of return fittingsand the skimmers to remove debris from the pool surface in an efficientand effective manner.

FIG. 19AK is another flowchart illustrating the processing logic of thepump control logic 84. For example, pump control logic 84 coulddetermine the correct water flow for water features by communicatingwith other pieces of installed pool/spa equipment which advise pumpcontrol logic 84 of optimum performance criteria. This logic couldreside in other installed pool/spa equipment and be communicated to thepump, or the logic could be contained within the pump itself. In step4320, the pump control logic 84 receives an instruction to determine thecorrect flow for a water feature. In step 4322, the pump control logic84 retrieves data for the water features from memory. The data retrievedcan include, but is not limited to, type of water feature, size,capacity, water flow capacity, water flow levels, etc. In step 4324, thepump control logic 84 receives user input, if any, for water featurecustomization to achieve a custom appearance. For example, a manual modecould be provided to allow the user to specify the desired water featureperformance. If there is no user input, then the pump control logic 84can use the data retrieved in step 4322. In step 4326, the pump controllogic 84 can calculate the optimal flow rate based on thecharacteristics of the water feature. Such characteristics, include butis not limited to, water feature, size, capacity, water flow capacity,water flow levels, etc. In step 4328, the pump control logic 84 receivesa schedule for the water features, if any. In step 4330, the pumpcontrol logic 84 adjusts the valves of the water feature so that thetheir operation can be schedule based. In step 4332, the pump controllogic 84 transmits the flow rate needed for the water feature. The typeof water features can include, but is not limited to, laminars,bubblers, waterfalls, deck jets, fountains, and skuppers.

FIG. 19AL is another flowchart illustrating the processing logic of thepump control logic 84. In step 4334, the pump control logic 84 receivesan instruction to provide flow to a heater. In step 4336, the pumpcontrol logic 84 retrieves water temperature set point data for heateroperation from memory. This data could include minimum and maximum watertemperatures set by a user or set by factory specified operatingparameters. In step 4338, the pump control logic 84 receives operationaltemperature data. In step 4340, the pump control logic 84 determineswhether the water temperature is below a minimum set point. If apositive determination is made, the pump control logic 84 proceeds tostep 4342 to transmit an instruction to provide flow to the heater. If anegative determination is made, the pump control logic 84 proceeds tostep 4344 to determine whether the water temperature is above a maximumset point. If a negative determination is made, the process ends. If apositive determination is made, the pump control logic 84 actuatesvalves to bypass the heater to improve hydraulic efficiency in step4346.

FIG. 19AM is another flowchart illustrating the processing logic of thepump control logic 84. In step 4348, the pump control logic 84 receivesan instruction to activate a heater or monitor or address heatingcontrols. In step 4350, the pump control logic 84 retrieves an optimumflow rate set point data for heater operation from memory. In step 4352,the pump control logic 84 receives operational flow rate and/or valveposition data. In this step, the pump control logic 84 receives datafrom the heat source identifying when the heat source has adequate flowand/or pressure to operate. In step 4354, the pump control logic 84determines whether the operational data is within the optimal set pointrange. If a positive determination is made, the pump control logic 84proceeds to step 4356 to store and/or update current optimal flow ratefor each heater device. The pump control logic 84 can store a history ofthis data. If a negative determination is made, the pump control logic84 proceeds to step 4358 where a determination is made regarding whetherretries are remaining. If a positive determination is made, the pumpcontrol logic 84 proceeds to step 4360, to transmit an instruction toincrease flow to the heater by five percent. Any other percentageincrease could be used. If a negative determination is made, the pumpcontrol logic 84 proceeds to step 4362 to transmit an error conditionand the process would then end.

FIG. 19AN is another flowchart illustrating the processing logic of thepump control logic 84. In step 4364, the pump control logic 84 receivesan instruction to manage a pump. In step 4366, the pump control logic 84receives operational data from a pool cover. In step 4368, the pumpcontrol logic 84 determines whether the pool cover is closed. If anegative determination is made, the pump control logic 84 reverts backto step 4366. If a positive determination is made, the pump controllogic 84 proceeds to step 4370 where it retrieves pool configurationparameters from memory such as pool surface area, volume, geometry,water features, etc. in step 4372, the pump control logic 84 determinesproper operation of the pump when the pool cover is closed based on thefactors retrieved above. In step 4374, the pump control logic 84determines proper pump speed to ensure the pool cover is not damaged byflooding. In step 4376, the pump control logic 84 can determine thedecreased rate of chlorine reduction due to lack of direct sunlight orless solar loading. In step 4378, the pump control logic 84 transmitsinstructions to pump of the foregoing calculations such as proper pumpspeed.

FIG. 19AO is another flowchart illustrating the processing logic of thepump control logic 84. In step 4380, the pump control logic 84 receivesan instruction to manage the water level in the pool. In step 4382, thepump control logic 84 retrieves pool water level settings from memory.This setting can be user set or set by factory default parameters. Instep 4384, the pump control logic 84 receives operational data from asensor monitoring the water level in a pool. In step 4386, the pumpcontrol logic 84 determines whether the water level is within the setpoint parameters. If a positive determination is made, the pump controllogic 84 proceeds to step 4388 to transmit an appropriate message to theuser or the system. If a negative determination is made, the pumpcontrol logic 84 proceeds to step 4390 to adjust the operation of thepump to allow the water level in the pool to reach the set pointparameters. In step 4392, the pump control logic 84 transmit anappropriate message to the user or the system that the water level isnot in set point range and that the pump operation has been adjusted toremedy the water level situation.

FIG. 19AP is another flowchart illustrating the processing logic of thepump control logic 84. In step 4394, the pump control logic 84 receivesan instruction to manage the operation of the pump based on the numberof bathers in the pool. In step 4396, the pump control logic 84 receivesoperational data from motion sensors. In step 4398, the pump controllogic 84 determines the number of bathers in the pool based on the datafrom the motion sensors. In step 4400, the pump control logic 84retrieves pool configuration parameters from memory. Such parameterscould include, but is not limited to, pool surface area, volume,geometry, etc. The parameters will assist the pump control logic 84 instep 4402 to determine proper pump speed based on the number of bathersin the pool. The pump in step 4402 can adjust its operation based on thenumber of bathers. Furthermore, the pump control logic 84 could alsocontrol other equipment that needs to be deactivated or activated basedon the presence and/or number of bathers in the pool. For example, instep 4404, the pump control logic 84 determines whether to activate ordeactivate other pool equipment based on the number of bathers in thepool. In step 4406, the pump control logic 84 transmits the deactivationor activation signal to the other equipment.

FIG. 19AQ is another flowchart illustrating the processing logic of thepump control logic 84. In step 4408, the pump control logic 84 receivesan instruction to monitor system curve of the pump which is thesummation of the dynamic head. In step 4410, the pump control logic 84retrieves data regarding the pump from memory. In step 4412, the pumpcontrol logic 84 receives operational data from sensors monitoring thepump. In step 4414, the pump control logic 84 estimates or calculatesthe system curve based on the multiple speeds of the pump.Alternatively, pump control logic 84 could estimate or calculate theoverall system curve based on a single point. In step 4416, the pumpcontrol logic 84 provides an indication of system efficiency rating andalerts trade and/or consumers based on factory defined or selectablechanges. In step 4418, the pump control logic 84 provides an indicationof system efficiency such as “efficiency mode,” “performance mode” etc.and assigns a push button to go to a selected mode with one push of abutton. In step 4420, the pump control logic 84 calculates periods ofhydraulic inefficiencies and in step 4422, it recommends ways to improvehydraulic efficiency. In step 4424, the pump control logic 84auto-delivers the correct flow or speed to make the equipment moreefficient. For example, pump control logic 84 could measure suction head(negative pressure) on the vacuum side of the pump and measure pressurehead on the pressure side of pump, both measurement devices beingintegral or adjacent to the pump, to derive Total Dynamic Head (“TDH”).An overall System Curve (TDH vs. flow) could also be estimated orcalculated from a single point, or generated when measured at multiplespeeds when using a multi-speed pump. Further pump control logic 84could compare the calculated system curve to known industry systemcurves (e.g., “Curve A”, “Curve C”, etc.) and determine a hydraulicefficiency “score.” Pump control logic 84 could then determine how toimprove the efficiency score and then either provide general suggestionsto the user to improve said score, or automatically implement thesuggestions. In one example, pump control logic 84 could monitor thetypical operating flow of the pool/pump and suggest alternate schedulesthat would achieve the same number of turnovers in a day with lowerpower consumption.

FIG. 19AR is another flowchart illustrating the processing logic of thepump control logic 84. In step 4426, the pump control logic 84 receivesan instruction to monitor demand based operation from local utilitycompanies. In step 4428, the pump control logic 84 retrieves data onfactory specified parameters from memory for the utility company. Instep 4430, the pump control logic 84 receives operation data of the pumpflow. In step 4432, the pump control logic 84 determines whether thepump operational data is within the set point parameters set by theutility company. If a positive determination is made, the pump controllogic 84 proceeds to step 4434 where a message is transmitted to theuser regarding the pump operational data being within the set pointparameters of the utility company and the process ends. If a negativedetermination is made, the pump control logic 84 proceeds to step 4436where the pump control logic 84 performs a function or changes the pumpoperation to conform to the utility company set point parameters. Thenin step 4438, the pump control logic 84 transmits a message that thepump operation has changed to conform to the utility company standards.

FIG. 19AS is another flowchart illustrating the processing logic of thepump control logic 84. In step 4440, the pump control logic 84 receivesan instruction to provide flow to a selected pool equipment. In step4442, the pump control logic 84 retrieves data on factory specifiedparameters from memory for the pumping needs of a selected poolequipment. In step 4444, the pump control logic 84 determines whetherthe flow data is being defined by the selected pool equipment. If anegative determination is made, the pump control logic 84 proceeds tostep 4446 where the pump itself defines the flow parameters for theselected pool equipment based on the flow provided by the pump. If apositive determination is and after step 4446, the pump control logic 84proceeds to step 4448 where it receives operational data for the flow ofthe pool equipment. In step 4450, the pump control logic 84 determineswhether the flow data is within the set point parameters either definedby the equipment or the pump. If a positive determination is made, amessage is transmitted to the user or the system that the flow data iswithin operating parameters. If a negative determination is made, thepump control logic 84 proceeds to step 4454 where the speed of the pumpis increased periodically to meet the demand of the pool equipment andthe process again reverts to step 4448 to receiver operational data andmake the same determination in step 4450.

FIG. 19AT is another flowchart illustrating the processing logic of thepump control logic 84. In step 4456, the pump control logic 84 receivesan instruction to measure the turbidity of the water. In step 4458, thepump control logic 84 retrieves data on factory specified parametersfrom memory regarding the turbidity of the water. In step 4460, the pumpcontrol logic 84 recieves operational turbidity data. In step 4462, thepump control logic 84 determines whether the turbidity data is withinthe specified operating parameters. If a positive determination is made,the pump control logic 84 proceeds to step 4464 where a message istransmitted regarding the turbidity data being within the operatingrange. If a negative determination is made, the pump control logic 84proceeds to step 4466 where a determination is made as to whether theuser wants to set a blackout time instead of a filter time. If anegative determination is made, the pump control logic 84 proceeds tostep 4468 where the pump control logic 84 automatically sets the filterschedule based on turbidity level. If a positive determination is made,the pump control logic 84 sets a blackout time period based on the userinput in step 4470. Then in step 4472, the pump control logic 84 adjuststhe pump to pump only what is needed to save energy and meet turbiditylevels.

FIG. 19AU is another flowchart illustrating the processing logic of thepump control logic 84. In step 4473, the pump control logic 84 receivesan instruction to prime the pump. In step 4474, the pump control logic84 can start the pump at the desired speed, not the prime speed. In step4476, the pump control logic 84 receives operation data from the pumpregarding water detection. In step 4478, the pump control logic 84determines whether water is detected. If a positive determination ismade, the pump control logic 84 proceeds to step 4480 where the primingperiod timer is cleared and the process ends. If a negativedetermination is made, the pump control logic 84 proceeds to step 4482where a timer is started or continued. In step 4484, the pump controllogic 84 make a determination as to whether there is time remaining inthe timer that was started. If a positive determination is made, thepump control logic 84 decrements the timer and proceeds back to step4476. If a negative determination is made, the pump control logic 84proceeds to step 4484 where a determination is made as to whether if thecurrent try is a retry. If a positive determination is made, the pumpcontrol logic 84 proceeds to step 4490 where an error condition istransmitted alerting the system or user that the priming failed and theprocess ends. If a negative determination is made and the current try isthe first try, then the pump control logic 84 proceeds to step 4492where the pump is stopped and allowed to cool. Then in step 4494, thepump control logic 84 reprimes at the maximum rotations per minute untilflow return, then immediately the pump control logic 84 will return tothe user or firmware desired speed.

The above processes for the pump control logic 84 can also be applied toa pumping system that is able to manage auxiliary pumps used at anygiven site. Some of the management features can include, but is notlimited to, turning auxiliary pumps on/off according to specificschedules, as well as changing the pump speed for a variable speed pump.Indeed, all of the processes for the pump control logic 84 as shown withrespect to FIGS. 18-19AU can be applied to auxiliary pumps. Auxiliarypumps can include, but are not limited to, pressure cleaner boosterpumps, waterfall pumps, and pumps used for water features or spas.

It is contemplated that any of the various processes in the embodimentsdescribed herein in connection with FIGS. 19A-19AU could be incorporatedinto pump control logic 84 either alone or in any combination. Furtherany additional processes disclosed herein in connection with poolcontrol logic 70 (e.g., water feature control logic 72, valve actuatorcontrol logic 74, cleaner control logic 76, lighting control logic 78,heater control logic 80, chemistry automation control logic 82) couldalso be incorporated into pump control logic 84 either alone or in anycombination. For example, the pump could include or be modularlyupgradeable to include any of the various processes in the embodimentsdescribed herein in connection with FIGS. 19A-19AU. Further still, anyof the flowcharts illustrating processing steps disclosed in connectionwith pump control logic 84 can be applied to pool control logic 70(e.g., water feature control logic 72, valve actuator control logic 74,cleaner control logic 76, lighting control logic 78, heater controllogic 80, chemistry automation control logic 82).

As mentioned briefly above, embodiments may provide smart valves/smartvalve actuators that include an actuator which rotates valves inresponse to a control signal. In one embodiment, the smart valveactuator may function as a stand-alone control for its associated valveor valves. In another embodiment, the smart valve actuator may operatein conjunction with a control automation system as described herein. Ina further embodiments, the smart valve actuator can operate according toa preset, preconfigured, and/or modifiable schedule. The smart valveactuator as described further below may provide for an easierinstallation and use by untrained installers and users. Further, thesmart valve actuator may reduce the time and cost required when needingmultiple pumps and ball valves to attain a perfect balance ofdistributed or shared water features. Additionally the smart valveactuator gives the pool owner control over his water features, theability to articulate and balance them remotely, and the possibility ofproviding varied effects on demand.

Traditional (non-smart) valve actuators have been used to electrify avalve to enable remote control. Existing valve actuators have internalor software driven limit switches that the installer can use to programthe valve actuator to stop turning the valve at the desired point. Thisallows a valve to turn to a desired point and deliver a desired effecton a water feature, and prevents the actuator motor from turning thevalve to inappropriate positions that may ‘dead-head’ the plumbing,blocking all water flow. However, the installer of such a valve actuatormust carefully mount the valve actuator in one of four orientations ontop of the valve in order to place the existing 180 degrees of controlin the needed orientation with the valve. Then the installer mustdisassemble the actuator body and carefully re-position two cams so thatwhen the shaft position reaches the desired limit, the cam depresses aninternal limit switch and disconnects power to the motor. Thisinstallation procedure is time consuming and requires skill.

Traditional (non-smart) valve actuators have also required an AClow-volt power supply to power the actuator's motor. This power sourcemay require additional circuitry or power transformers to generate thispower source dedicated only for use to power the actuator motor.Additionally, traditional valve actuators have only one programmablelimit for clockwise and one for counterclockwise actuation. Theseprogrammable limits may be set to achieve a particular effect on a waterfeature, for example causing a pleasing flow on a fountain or a desiredheight on a deck jet. However, if the water flow or pressure changes atthe input port of the valve, the desired effect is lost. Similarly,water flow will change due to pump speed changes, filter mediacondition, and interaction with the valve position of additional valvesin the system or booster pumps that may divert water. Having waterfeatures that are influenced by interactions with other equipment andvalves results in undesired performance. Installers often add completelyisolated plumbing systems only for water features to avoid thisundesired behavior. An additional issue with traditional valve actuatorsis that the cam setting of traditional valves is limited in resolutionto the splines present on the actuator drive shaft, and is often toocoarse to allow setting for an exact water feature effect. This requirescompromise in setting to the nearest setting.

Embodiments provide a smart valve actuator that addresses many of thedrawbacks of traditional valve actuators. In one embodiment, a smartvalve actuator has the ability to be controlled directly at the deviceor from the pool automation system in the same manner as one wouldcontrol a variable speed pump, for example, by providing control ofintermediate positions via software control. In one embodiment the smartvalve actuator may be addressed automatically from the control. Inanother embodiment, the control may be given an address of the smartvalve actuator that enables the control to transmit fixed and variablecommands to the smart valve actuator. Embodiments may provide a numberof additional features such as the ability to set minimum and maximumsettings for each smart valve actuator to allow for minimum and maximumallowed flow and to set protection limits to prevent the valve fromturning to potentially damaging positions. Additional features mayenable the configuration/setting of high, medium and low default flowsettings and the ability to control positions variably by using, asnon-limiting examples, digital or analog + and − buttons, a digital oranalog slider, or a rotary knob on the controller or on the actuator tocontrol the flow. In one embodiment LEDs may be provided that allow thepool owner or servicer to identify settings, set points and flow at aglance. In further embodiments, an added flow, temperature or pressuresensor can monitor the water properties of the output flow andautomatically adjust the valve position to seek a programmed setpointand/or an absolute position sensor can allow manual valve actuationwithout requiring re-synchronization after the motor is re-connected tothe shaft, thereby eliminating the need to mount the smart valveactuator in a particular orientation because the device can manage thevalve angle over the entire 360 degree rotation of the valve.

The smart valve actuator can be used manually or through automation. Thesmart valve actuator may sit on an existing valve, may have a valveintegral to it on pool equipment plumbing or may be located at alocation in the backyard to control a flow of water between one to manyplumbed water ports. In one embodiment, the smart valve actuator iscapable of receiving from, or giving to, a pool controller, a uniqueaddress that enables communication of specific commands and settingsbetween the actuator and its controlling entity. In some embodiments,when controlled by the pool automation system, the smart valve actuatormay communicate by communication protocols, including withoutlimitation, RS485, Ethernet, WiFi, Bluetooth, ZWave, Zigbee, thread,cellular or another communication protocol. Wireless control of thesmart valve actuator from a web-enabled device or the pool controllermay occur in the following embodiments: when the WiFi chip is on main(intelligence) PCB, is attached/plugged into main PCB, is modularlyupgraded on the main PCB or in the PCB enclosure, is modularly upgradedon/external to the main PCB enclosure, or is remote to the main PCBenclosure. An antenna may be mounted with, or located remote to, theWiFi chip for all prescribed locations/methods described above. Thesmart valve actuator may also allow pool controlling devices tocommunicate directly with web-enabled devices (e.g.: phone, tablets,phones, thermostats, voice enabled devices, etc.) without the need to gothrough a home router.

The smart valve actuator can be configured to set specific open andclose valve settings, and it can be defaulted or configured with defaultsettings for low flow, medium flow, high flow, or programmable flow atvaried angles. These flow rates can be used to dial in settings when apump is powering the water associated with water features. In some casesthese flow rates can be used to achieve the desired outcome at thelowest flow increasing the pool's energy efficiency. The smart valveactuator's position may be variably controlled in a number of ways, suchas without limitation, by using push and hold digital or analog buttons,digital or analog + and − buttons, a digital or analog slider, and/or arotary knob on the controller or on the actuator to control the flow.

In one embodiment, the smart valve actuator may be used to automatefilter valves and their associated positions such as, for example,filter, backwash, rinse, waste, closed, recirculate, and winterize. Anadditional benefit of the smart valve actuator is that it may allowfilters and valves to be bypassed when not required for certainapplications, such as when operating an attached spa, thereby improvingflow and energy efficiency. In another embodiments, the smart valveactuator could be used in connection with the addition of chemicals(e.g., ORP, pH, free chlorine, etc.) to the pool/spa. For example, thesmart valve actuator could be used to integrate the automation ofvarious positions for tablet feeding automation.

In an embodiment, the smart valve actuator may be used to automaticallymanage water flow needed for operation of suction and pressure cleaners.When a smart valve actuator is used in conjunction with a variable speedpump, the pump may be able to increase its speed to deliver the flownecessary for proper operation of a suction or pressure cleaner, therebymaximizing energy savings when compared to running the variable speedpump at a higher speed throughout the day. In one embodiment, the smartvalve actuator control may set angles via commands. The commands may bestored in the controller or the actuator processor. The change insettings may be done automatically; may be done through powerinterruption to move to the next setting, may be done through timeduration of the power interruption; and may be done with a manualsetting on the actuator.

Among its features, the smart valve actuator may have 1 to manyincrements with increments set at 0.5 degrees for 180 degrees, or otherresolution or range. The smart valve actuator may measure the angle setmanually and store that position in memory for use as one of its defaultsettings. In one embodiment the smart valve actuator may include sensorcapabilities to measure the temperature, flow rates and./or pressure ofthe input water or output water when the valve is diverted and be ableto use the measured parameters to turn the motor to achieve a desiredsetpoint. The flow sensing or pressure sensing may be built into thesmart valve actuator or may be attained by a secondary flow sensor.

In one embodiment, a stored setpoint flow/pressure level may be used bya PID loop (or other control algorithm) to turn the valve to a neededposition to achieve the flow and the smart valve actuator may update theposition if conditions (pressure, flow, etc.) changes.

As noted, the smart valve actuator provides a number of improvementsover traditional (non-smart) valve actuators. For example, the smartvalve actuator may manage a fluid level in a spa with a sensor or maymanage return valves from a spa to prevent the spa from emptying oroverfilling via level sensing. The smart valve actuator may block awater feature flow if ambient temperatures are too low thus providing avalve-controlled freeze protection. For example, the smart valveactuator may be operated by a bi-metallic switch as an input thatreverses the motor at low temperatures (no circuit board needed). Thesmart valve actuator may communicate with a pool cover sensor input thatprevents activation of a water feature if the pool cover is closed.Additionally, in some embodiments, the smart valve actuator may open asolar panel return if the solar panel temperature has reached a desiredsetpoint. In one embodiment, the smart valve actuator may include a windsensor and block a water feature flow if forecasted wind (retrieved fromthe web) is too high. For example, the smart valve actuator may reversethe motor at higher wind speeds to stop water features from dumpingwater out of the pool. The smart valve actuator may also block a waterfeature if flooding is sensed by float or conductivity sensing. In oneembodiment, the smart valve actuator may include a dual input powercapability that can accept either AC power inputs or DC power input topower the motor. Further, in some embodiments, the smart valve actuatorcan include a handle, or the like, to provide for manual operation ofthe smart valve actuator, if necessary, during loss of power (e.g.,power cable being cut) or loss of communication (e.g., communicationscable being cut, electronics failure, etc.) to the smart valve actuator.

Among the improvements made possible through the use of the smart valveactuator as described herein are increased efficiency in the poolsystem. For example, in one embodiment, the smart valve actuator maymonitor energy saving interactions with a pump to support a minimumrequired speed to achieve requested flows in all of the active waterfeatures. This approach may enable all water to go through the waterfeatures and none through the return jets because of 100% efficiency.Similarly, the smart valve actuator may request a higher RPM if thedesired flow cannot be achieved (a pump runs only at filtration speed,but if a water feature is turned on, the smart valve actuator controllercan request increased speed if the flow setpoint cannot be achieved).The smart valve actuator position may also be adjusted to see if adesired flow rate can be achieved at the filtration flow rate.Calculations may be performed to determine the most efficient pump speedto achieve the desired results by algorithm or by communication from thepump of the power draw. The use of the smart valve actuator mayfacilitate measuring and reporting excess flow by comparing thecontrolled quantity to the valve position and computing the marginavailable; i.e. determining if the pump speed is higher than needed toachieve the requested water feature flow. The computation may indicatewhat reduction in pump speed may be implemented.

Embodiments may perform flow sensing and pressure sensing. For example,flow may be measured with a paddle wheel or a turbine and interpreted bya co-located processor or remotely located processor. Flow may also bemeasured with ultrasonic doppler methods, thermal mass/dispersionmethods, magnetic/induction methods, optical methods, etc. Pressuresensing may be performed with a flow sensor mounted on a pipe, or a tuberun from the pipe to a sensor mounted on the circuit board. Methods forpressure sensing include strain gage piezoresistive methods, capacitivemethods, magnetic diaphragm displacement methods, optical methods,resonant frequency methods, etc. The smart valve actuator may alsoutilize a temperature sensor. For example, temperature sensing candetermine ambient temperature, remote solar panel temperature, or watertemperature at the input or output ports.

In some embodiments, the smart valve actuator may include protectionfeatures for the pool system. The protection features may include storedlimits of damaging valve positions and undesired valve positions alongwith software to automatically restore permitted valve positions aftermanual actuation of the valve or understand its position upon power-upto assure that the valve is in the correct position. Additionally, thesmart valve actuator may facilitate motor current monitoring and inputvoltage monitoring to initiate scale-back or shutdown to protect lifeand prevent internal damage to pool system components.

In one embodiment, the pool system may have a ‘legacy’ mode that canaccept travel limit settings via pushbutton or power interrupt signalingfrom the controller. This legacy mode can be implemented bydisconnecting the motor from the drive shaft and signaling the softwareby timed direction reversals, wireless communication, or a physical ormagnetic pushbutton. In some embodiments, software can learn therelationship between valve angle and measured parameters and predict ifa requested setting is possible based on a simulation of what valveangle will be needed to achieve the desired effect. In one embodimentthe software may contain methods to prevent ‘hunting’ or needless motoractivation for minor fluctuations of the measured parameters. Further,the motor drive software may generate stepper motor signals to drive themotor faster or slower than current products based on synchronousmotors.

FIG. 20 is a diagram 1200 illustrating chemistry automation controllogic 82. Chemistry automation control logic 82 could incorporate and/orbe in communication with a variety of types of data and/or data sources.More specifically, chemistry automation control logic 82 can communicatewith, or receive, user input data 1202, chemistry automation operationaldata 1204, chemistry automation factory specifications 1206, chemistryautomation configuration parameters 1208, web data 1210, poolconfiguration parameters 1212, data from related devices 124, healthmonitoring data 1216, and/or external sensor data 1218.

User input data 1202 could include timers, schedules (e.g., on/off, whatspeed, operation duration, etc.), chlorination levels, alternativesanitizers (e.g., liquid, chlorine, tablets, etc.), etc. Chemistryautomation operational data 1204 could include water chemistry, watertemperature, air temperature, water detection, water flow (rate), waterflow (yes/no), water pressure, air cavitation, salt concentration,chemistry dispense rate, power consumption, current draw, waterconductivity, salinity, applied voltage, water hardness, etc. Chemistryautomation factory specifications 1206 could include power consumption,current draw, input voltage, etc. Chemistry automation configurationparameters 1208 could include IP address, GPS coordinates, zip code,time and date, etc. Web data 1210 could include location (based on IPaddress), time and date, sunrise/sunset data, regional and local weatherforecast data, temperature, ambient light, solar radiation, humidity,season, elevation, dew point, etc. In one example the chemistryautomation logic 82 could shift operation based on weather input. Poolconfiguration parameters 1212 could include pool surface area, poolgeometry, pool liner color, pool cover (yes/no), volume, etc. Data fromrelated devices 1214 could include data relating to at least thefollowing: pump(s), heater(s) (gas/heat pump), heat (solar), poolcovers, controller(s), spa(s), water feature(s), secondary pump(s),valves/actuators/bypasses, alternative sanitizers (agent, fill level,weight, feed rate, etc.), etc. In one example, the chemistry automationcontrol logic 82 could receive input from an external device to identifyan operating profile. Health monitoring data 1216 could include powerconsumption, current monitoring, line-to-line balance, grounding,bonding, leak current, runtime, operating temperatures, number of powercycles, efficiency, pressure drop of scaling cell (chlorinator),presence of gas pockets (chlorinator), ultraviolet output (UVsanitizer), ozone suction (UV sanitizer), lamp temperature (UVsanitizer), time to clean (chemistry dispenser), age of dispense medium(chemistry dispenser), born on date (chemistry dispenser), etc. Externalsensor data 1218, could include water temperature, water flow rate, airtemperature, suction/vacuum pressure, water chemistry, turnover rate ofpool, ambient light, pool cover detection, motion sensors, batherdetection, salt concentration, pH, water hardness, cyanuric acid levels,turbidity, ozone concentrations, algae, microbial populations, phosphatelevels, nitrate levels, water level, bather load, etc. It is noted that,the chemistry automation control logic 82 could sample the water fromvarious locations, including ports, as well as offline sensingequipment. It is further noted that the external sensor data 1218 (aswell as external sensor data received by any and/or all of the controllogic systems 72-83) can be received from sensors in a plurality oflocations, including but not limited to, the pool pad, in the poolitself, or remote from the pool. Additionally, the chemistry automationcontrol logic 82 can receive learned information and a pool coverschedule. While it may be desirable for external sensors tomonitor/provide data on as many system parameters as possible (therebyproviding greater optimization, automation, and user/operator comfort),it is contemplated that some systems need not utilize an external sensorto monitor every system parameter. For example, if a particular poolchemistry sensor has not been installed in a particular system, theuser/operator can provide this information by first determining the poolchemistry (e.g., by manually testing the pool chemistry by conventionalmeans that are well known to the art) and then entering the poolchemistry information into the system via a user interface.

FIGS. 21A-21I are flowcharts illustrating processing steps of thechemistry automation control logic 82. FIG. 21A is a flowchartillustrating processing logic of the chemistry automation control logic82 communicating with a chemistry automation system. In step 1300, thechemistry automation control logic 82 receives an instruction toactivate the chemistry automation system. In step 1302, the chemistryautomation control logic 82 receives operational data from the chemistryautomation system water detection sensor. The chemistry automationsystem water detection sensor can be, for example, a flow switch, flowmeter, current flow (“gas sensor”), etc. In step 1304, the chemistryautomation control logic 82 determines if water is detected. If apositive determination is made, then the chemistry automation controllogic 82 proceeds to step 1306 where it transmits an instruction to thechemistry automation system to activate, and the process ends. If anegative determination is made, then the chemistry automation controllogic 82 proceeds to step 1308 where it determines if there are anyretries remaining. For example, in step 1308 the chemistry automationcontrol logic 82 could determines if there are any retries remaining fora timer (e.g., 1 hour, 6 hours, 24 hours, or any other suitable timeinterval), or if there has been no flow detected over the same period oftime. If a positive determination is made, e.g., the twenty-four hourtimer has not expired, then the process returns to step 1302 andcontinues from there. If a negative determination is made, e.g., thetwenty-four hour timer has expired indicating that there has been noflow over a twenty-four hour period, then the process proceeds to step1310 where an error condition is transmitted, and the process ends.

FIG. 21B is another flowchart illustrating processing logic of thechemistry automation control logic 82 communicating with a chemistryautomation system. In step 1312, the chemistry automation control logic82 receives an instruction to activate the chemistry automation system.In step 1314, the chemistry automation control logic 82 retrieves dataon factory specified power parameters from memory (e.g., powerconsumption, current draw, and line voltage). In step 1316, thechemistry automation control logic 82 receives line power operationaldata. In step 1318, the chemistry automation control logic 82 determinesif the line power is within factory specifications. If a positivedetermination is made, then the chemistry automation control logic 82proceeds to step 1320 where it transmits an instruction to the chemistryautomation system to activate, and the process ends. If a negativedetermination is made, then the chemistry automation control logic 82proceeds to step 1322 where it determines if there are any retriesremaining. If a positive determination is made, then the process returnsto step 1316 and continues from there. If a negative determination ismade, then the process proceeds to step 1324 where an error condition istransmitted, and the process ends.

FIG. 21C is another flowchart illustrating processing logic of thechemistry automation control logic 82 communicating with a chemistryautomation system. In step 1326, the chemistry automation control logic82 retrieves user-specified chlorination levels from memory. In step1328, the chemistry automation control logic 82 retrieves poolconfiguration parameters from memory, e.g., pool surface area, volume,geometry, etc. In step 1330, the chemistry automation control logic 82receives operational data from the chemistry automation system, e.g.,chlorination rate. In step 1332, chemistry automation control logic 82determines the length of chlorination time to reach the user-specifiedlevel. In step 1334, chemistry automation control logic 82 transmits aninstruction to the chemistry automation system to run for the determinedlength of time, and then returns to step 1330.

FIG. 21D is another flowchart illustrating processing logic of thechemistry automation control logic 82 communicating with a chemistryautomation system. In step 1336, the chemistry automation control logic82 retrieves user-specified chlorination levels from memory. In step1338, the chemistry automation control logic 82 receives pumpoperational data, e.g., turnover rate. In step 1340, the chemistryautomation control logic 82 receives water chemistry operational datafrom external sensors. In step 1342, chemistry automation control logic82 transmits pump and water chemistry operational data to memory. Instep 1344, the chemistry automation control logic 82 determines if thechlorine level is below the user-specified level. If a negativedetermination is made, then the chemistry automation control logic 82returns to step 1338 and continues from there. If a positivedetermination is made, then the chemistry automation control logic 82proceeds to step 1346 where it determines the length of chlorinationtime required to reach the user-specified chlorine level. In step 1348,the chemistry automation control logic 82 transmits the determinedchlorination time to memory. In step 1350, the chemistry automationcontrol logic 82 transmits an instruction to the chemistry automationsystem to run for the determined length of time, and then returns tostep 1338.

FIG. 21E is another flowchart illustrating processing logic of thechemistry automation control logic 82 communicating with a chemistryautomation system. In step 1352, the chemistry automation control logic82 receives operational data from ambient light sensors. In step 1354,the chemistry automation control logic 82 determines the amount ofdirect sunlight to a body of water. In step 1356, the chemistryautomation control logic 82 retrieves pool configuration parameters frommemory, e.g., pool surface area, volume, geometry, etc. In step 1358,the chemistry automation control logic 82 determines the rate ofchlorine reduction due to direct sunlight. In step 1360, the chemistryautomation control logic 82 transmits an instruction to the chemistryautomation system to increase dispensing rate of chlorine by rate ofchlorine reduction due to direct sunlight, and then returns to step1352.

FIG. 21F is another flowchart illustrating processing logic of thechemistry automation control logic 82 communicating with a chemistryautomation system. In step 1362, the chemistry automation control logic82 receives an instruction to activate the chemistry automation system.In step 1364, the chemistry automation control logic 82 receivesoperational data from the pool cover. In step 1366, the chemistryautomation control logic 82 determines if the pool cover is closed. If anegative determination is made, then the chemistry automation controllogic 82 returns to step 1364 and continues from there. If a positivedetermination is made, then the chemistry automation control logic 82proceeds to step 1368 where it retrieves pool configuration parametersfrom memory, e.g., pool surface area, volume, geometry, etc. In step1370, the chemistry automation control logic 82 determines the decreasedrate of chlorine reduction due to lack of direct sunlight. In step 1372,the chemistry automation control logic 82 transmits an instruction tothe chemistry automation system to decrease the dispensing rate ofchlorine by the decreased rate of chlorine reduction due to lack ofdirect sunlight, and then returns to step 1364.

FIG. 21G is another flowchart illustrating processing logic of thechemistry automation control logic 82 communicating with a chemistryautomation system. In step 1374, the chemistry automation control logic82 receives an instruction to activate the chemistry automation system.In step 1376, the chemistry automation control logic 82 receivesoperational data from the motion sensors. In step 1378, the chemistryautomation control logic 82 determines the number of bathers in thepool. In step 1380, the chemistry automation control logic 82 retrievespool configuration parameters from memory, e.g., pool surface area,volume, geometry, etc. In step 1382, the chemistry automation controllogic 82 determines an increased chlorine demand based on the number ofbathers. In step 1384, the chemistry automation control logic 82transmits an instruction to the chemistry automation system to increasethe dispensing rate of chlorine by the increased chlorine demand basedon the number of bathers, and then returns to step 1376.

FIG. 21H is a flowchart illustrating processing logic of the chemistryautomation control logic 82 determining alert conditions of a chemistryautomation system. The chemistry automation control logic 82 proceedswith four parallel routine sequences that respectively begin with steps1386, 1396, 1406, 1416. Each routine sequence is discussed sequentially,though it should be understood that the routine loops could operate inparallel, or alternatively, in series with each other. The firstsequence begins in step 1386 where the chemistry automation controllogic 82 retrieves factory specified life expectancy data from memory.In step 1388, the chemistry automation control logic 82 determines analert threshold, e.g., less than 90% of chemistry automation lifeexpectancy remaining or runtime value. In step 1390, the chemistryautomation control logic 82 receives operational data on chemistryautomation runtime. In step 1392, the chemistry automation control logic82 determines if the chemistry automation runtime is greater than thethreshold. If a negative determination is made, then the process returnsto step 1390 and continues to receive operational data on chemistryautomation runtime. If a positive determination is made, then theprocess proceeds to step 1394 where an alert is transmitted to a user,and the process ends.

The second sequence begins in step 1396 where the chemistry automationcontrol logic 82 retrieves factory specified operating temperature datafrom memory. In step 1398, the chemistry automation control logic 82determines an alert threshold, e.g., a temperature value that is 10%above or below operating temperature. In step 1400, the chemistryautomation control logic 82 receives operational data on chemistryautomation system operating temperature. In step 1402, the chemistryautomation control logic 82 determines if the chemistry automationsystem operating temperature exceeds the threshold, or is outside of athreshold range. If a negative determination is made, then the processreturns to step 1400 and continues to receive operational data onchemistry automation system operating temperature. If a positivedetermination is made, then the process proceeds to step 1404 where thechemistry automation control logic 82 reduces the output of thechemistry automation system.

The third sequence begins in step 1406 where the chemistry automationcontrol logic 82 retrieves factory specified power consumption data frommemory. In step 1408, the chemistry automation control logic 82determines an alert threshold, e.g., power value that is 110% ofspecified power consumption. In step 1410, the chemistry automationcontrol logic 82 receives operational data on chemistry automationsystem power consumption. In step 1412, the chemistry automation controllogic 82 determines if the chemistry automation system power consumptionis greater than the threshold. If a negative determination is made, thenthe process returns to step 1410 and continues to receive operationaldata on chemistry automation system power consumption. If a positivedetermination is made, then the process proceeds to step 1414 where thechemistry automation control logic 82 reduces the output of thechemistry automation system.

The fourth sequence begins in step 1416 where the chemistry automationcontrol logic 82 retrieves factory warranty data from memory, e.g., awarranty expiration date. In step 1418, the chemistry automation controllogic 82 determines an alert threshold, e.g., days left on factorywarranty. In step 1420, the chemistry automation control logic 82receives current date information. In step 1422, the chemistryautomation control logic 82 determines if the current date is beyond thethreshold date or the number of days remaining is below the thresholddate. If a negative determination is made, then the process returns tostep 1420 and continues to receive current date information. If apositive determination is made, then the process proceeds to step 1424where an alert is transmitted to a user, and the process ends.

FIG. 21I is another flowchart illustrating processing logic of thechemistry automation control logic 82 communicating with a chemistryautomation system. In step 1426, the chemistry automation control logic82 retrieves factory specified servicing data from memory, e.g., serviceintervals. In step 1428, the chemistry automation control logic 82retrieves date of previous service from memory. In step 1430, thechemistry automation control logic 82 determines the time to the nextservice and then proceeds to steps 1432 and 1438. In step 1438, thechemistry automation control logic 82 transmits an instruction to thehuman-machine interface device to display the time to the next service.In step 1432, the chemistry automation control logic 82 determines thealert threshold, e.g., 30 days to next service. In step 1434, thechemistry automation control logic 82 determines if the time to the nextservice is less than the threshold. If a negative determination is made,then the process returns to step 1428 and continues to receive the dateof pervious service from memory. If a positive determination is made,then the process proceeds to step 1436 where the chemistry automationcontrol logic 82 transmits an alert to the user.

FIG. 22 is a diagram 1500 illustrating heater control logic 80. Heatercontrol logic 80 could incorporate and/or be in communication with avariety of types of data and/or data sources. More specifically, heatercontrol logic 80 can communicate with, or receive, user input data 1502,heater operational data 1504, heater factory specifications 1506, heaterconfiguration parameters 1508, web data 1510, pool configurationparameters 1512, data from related devices 1514, health monitoring data1516, and/or external sensor data 1518.

User input data 1502 could include heating and/or cooling temperatureset points, heating or cooling mode, pool/spa mode, heater x or coolerx, where “x” is an index referring to one or more heating and/or coolingdevices, countdown to heat, etc. Heater operational data 1504 couldinclude line voltage, power consumption, gas pressure, air pressure orvacuum, air temperature, humidity, other environmental conditions, flowrate, water level, state (e.g., on/off), temperature setpoint, durationsetpoint, operating noise, etc. Heater factory specifications 1506 couldinclude gas heater input rating, gas heater thermal efficiency, heatpump output & COP (coefficient of performance) at T1 (reference testtemperature 1), RH1 (reference test relative humidity 1), heat pumpoutput & COP at T1, RH2 (reference test relative humidity 2), heat pumpoutput & COP at T2 (reference test temperature 2), RH1, heat pump output& COP at T2, RH2, power consumption, current draw, input voltage, etc.Heater configuration parameters 1508 could include IP address, GPScoordinates, zip code, etc. Web data 1510 could include regional solarirradiance data, regional weather forecast data, regional fuel costdata, direct solar irradiance—modeled clear-sky, diffuse solarirradiance—modeled clear-sky, air temperature, relative humidity, windspeed, cloud cover, cost of natural gas, cost of propane gas, cost ofelectricity, etc. Pool configuration parameters 1512 could include poolsurface area, pool volume, emissivity of pool, absorptivity of pool,pool solar exposure, fraction of weather station wind speed at poolsurface, desired water temperature, pump schedule, type of pool cover(solar transmittance, thermal conductivity, emissivity, absorptivity),pool cover use schedule, etc. Data from related devices 1514 couldinclude data relating to at least the following: pump(s), secondarypump(s), filter bypass, water feature(s), chemical dispensers,valves/actuators/bypass, pool cover(s), controller(s), spa(s), etc. Thefollowing relationships could exist between the heater control logic 80the related devices: water features (used to assist loss ofheat/coolers), chemical dispensers (logic 80 could open bypass toprevent off balance chemistry from entering the heater), secondary pump(affects overall system flow), tablet/liquid chlorine feeder (if presentin system should not be used on the same loop as the heater), andexternal sensors (could have shared flow switch and water temperaturesensors). Health monitoring data 1516 could include runtime, operatingtemperatures/profile, power consumption, predictive failure, number ofcycles, degradation of efficiency, pool chemistry, fuel gas pressure,refrigerant pressures, refrigerant temperatures, exhaust temperature,carbon monoxide, freeze and condensation warnings, motor speed (RPM),other operating conditions, settings, troubleshooting data, etc.External sensor data 1518, could include air temperature, humidity,ambient noise, pool chemistry, fuel gas pressure, exhaust temperature,carbon monoxide, carbon dioxide, oxygen, vibration, bather detection,etc. Additionally, the heater control logic 80 can receive informationpertaining to time limits on setting block heater schedules, maximumallowable temperatures, password protection, scheduled heating, andsetback schedules. While it may be desirable for external sensors tomonitor/provide data on as many system parameters as possible (therebyproviding greater optimization, automation, and user/operator comfort),it is contemplated that some systems need not utilize an external sensorto monitor every system parameter. For example, if a temperature sensorhas not been installed in a particular system, the user/operator canprovide this information by first determining the temperature (e.g., bychecking a thermometer, a thermocouple, a weather forecast, theinternet, etc.) and then entering the temperature into the system via auser interface.

FIGS. 23A-23J are flowcharts illustrating processing steps of the heatercontrol logic 80. FIG. 23A is a flowchart illustrating processing logicof the heater control logic 80 communicating with a heater. In step1520, the heater control logic 80 receives an instruction to activatethe heater. In step 1522, the heater logic 80 retrieves data pertainingto factory specified power parameters from memory, e.g., parametersrelating to power consumption, current draw, and line voltage. In step1524, the heater logic 80 receives line power operational data. In step1526, the heater logic 80 determines whether the line power operationaldata is within factory specifications. If a positive determination ismade, the process proceeds to step 1528. If a negative determination ismade, the process proceeds to step 1530. In step 1528, the heatercontrol logic 80 transmits an instruction to the heater to activate, andthe process ends. As referenced above, if a negative determination ismade at step 1526, then the process proceeds to step 1530. In step 1530,the heater control logic 80 determines if there are any retriesremaining. If a positive determination is made, then the heater controllogic 80 proceeds to step 1524 and continues the process from that step.If a negative determination is made, then the heater control logic 80proceeds to step 1532 and transmits an error condition signal, and thenends the process.

FIG. 23B is another flowchart illustrating processing logic of theheater control logic 80 communicating with a heater. In step 1534, theheater control logic 80 receives an instruction to activate the heater.In step 1536, the heater logic 80 retrieves minimum fuel setpoint datafor heater operation from memory, e.g., minimum gas pressure. In step1538, the heater logic 80 receives operational data on fuel, e.g.,current gas pressure. In step 1540, the heater logic 80 determineswhether the gas pressure is above a minimum setpoint. If a positivedetermination is made, the process proceeds to step 1542. If a negativedetermination is made, the process proceeds to step 1541. In step 1542,the heater control logic 80 transmits an instruction to the heater toactivate, and the process ends. As referenced above, if a negativedetermination is made at step 1540, then the process proceeds to step1541. In step 1541, the heater control logic 80 logs the errortimestamp. In step 1543, the heater control logic 80 determines if thenumber of error logs for the week exceeds the allowable amount. If apositive determination is made, the process proceeds to step 1545. If anegative determination is made, the process proceeds to step 1544. Instep 1545, the heater control logic 80 transmits an alert to the user,and the process ends. As referenced above, if a negative determinationis made at step 1543, then the process proceeds to step 1544 where theheater control logic 80 determines if there are any retries remaining.If a positive determination is made, then the heater control logic 80proceeds to step 1538 and continues the process from that step. If anegative determination is made, then the heater control logic 80proceeds to step 1546 and transmits an error condition signal, and thenends the process.

FIG. 23C is another flowchart illustrating processing logic of theheater control logic 80 communicating with a heater. In step 1548, theheater control logic 80 receives an instruction to activate the heater.In step 1550, the heater logic 80 retrieves blower setpoint data forheater operation from memory, e.g., minimum air pressure. In step 1552,the heater logic 80 receives blower operational data, e.g., airpressure. In step 1554, the heater logic 80 determines whether the airpressure is above the minimum setpoint. If a positive determination ismade, the process proceeds to step 1556. If a negative determination ismade, the process proceeds to step 1558. In step 1556, the heatercontrol logic 80 transmits an instruction to the heater to activate, andthe process ends. As referenced above, if a negative determination ismade at step 1554, then the process proceeds to step 1558. In step 1558,the heater control logic 80 determines if there are any retriesremaining. If a positive determination is made, then the heater controllogic 80 proceeds to step 1560 and transmits an instruction to theblower to increase the air pressure by 5%, and proceeds to step 1552 andcontinues the process from that step. It is noted that while the blowercould increase air pressure in 5% increments it is contemplated that anysatisfactory incremental value could be chosen for optimization of thesystem (e.g., 1%, 2%, 5%, 10%, etc.). If a negative determination ismade, then the heater control logic 80 proceeds to step 1562 andtransmits an error condition signal, and then ends the process.

FIG. 23D is another flowchart illustrating processing logic of theheater control logic 80 communicating with a heater. In step 1564, theheater control logic 80 receives an instruction to activate the heater.In step 1566, the heater logic 80 retrieves water temperature setpointdata for heater operation from memory, e.g., minimum and maximum watertemperatures. In step 1568, the heater logic 80 receives operationaltemperature data, e.g., water temperature read by a sensor. In step1570, the heater logic 80 determines whether the water temperature isbelow the minimum setpoint. If a positive determination is made, theprocess proceeds to step 1572. If a negative determination is made, theprocess returns to step 1568. In step 1572, the heater control logic 80transmits an instruction to the heater to activate. In step 1574, theheater control logic 80 receives operational temperature data. In step1576, the heater control logic 80 determines if the water temperature isabove a maximum setpoint. If a positive determination is made, then theheater control logic 80 proceeds to step 1578 and transmits aninstruction to the heater to switch to standby mode, and the processends. If a negative determination is made, then the heater control logic80 returns to step 1574.

FIG. 23E is another flowchart illustrating processing logic of theheater control logic 80 communicating with a heater. In step 1582, theheater control logic 80 receives an instruction to activate the heater.In step 1584, the heater logic 80 retrieves minimum flow rate setpointdata for heater operation from memory, e.g., gallons per minute. In step1586, the heater logic 80 receives operational flow rate data. In step1588, the heater logic 80 determines whether the flow rate is above theminimum setpoint. If a positive determination is made, the processproceeds to step 1590. If a negative determination is made, the processproceeds to step 1592. In step 1590, the heater control logic 80transmits an instruction to the heater to activate, and the processends. As referenced above, if a negative determination is made at step1588, then the process proceeds to step 1592. In step 1592, the heatercontrol logic 80 determines if there are any retries remaining. If apositive determination is made, then the heater control logic 80proceeds to step 1594 and transmits an instruction to the pump toincrease the flow by 5%, and proceeds to step 1586 and continues theprocess from that step. It is noted that while the pump could increaseflow in 5% increments it is contemplated that any satisfactoryincremental value could be chosen for optimization of the system (e.g.,1%, 2%, 5%, 10%, etc.). If a negative determination is made, then theheater control logic 80 proceeds to step 1596 and transmits an errorcondition signal, and then ends the process.

FIG. 23F is another flowchart illustrating processing logic of theheater control logic 80 communicating with a heater. In step 1598, theheater control logic 80 receives an instruction to activate the heater.In step 1600, the heater logic 80 retrieves runtime setpoint data forheater operation from memory, e.g., duration of operation. In step 1602,the heater logic 80 transmits an instruction to the heater to activate.In step 1604, the heater logic 80 sets a countdown timer for apredefined number (“x”) of seconds, where “x” is the desired runtime ofthe heater, and activates the timer. In step 1606, the heater logic 80determines if the timer has reached “0.” If a positive determination ismade, the process proceeds to step 1608. If a negative determination ismade, the process returns to step 1604. In step 1608, the heater controllogic 80 transmits an instruction to deactivate the heater, and theprocess ends.

FIG. 23G is another flowchart illustrating processing logic of theheater control logic 80 communicating with a heater. In step 1610, theheater control logic 80 retrieves maximum ambient noise setpoint datafor heater operation from memory. In step 1612, the heater logic 80receives ambient noise operational data. In step 1614, determines if theambient noise is above the maximum allowed value. If a positivedetermination is made, the process proceeds to step 1616. If a negativedetermination is made, the process returns to step 1612. In step 1616,the heater control logic 80 determines if there are any retriesremaining. If a positive determination is made, then the heater controllogic 80 proceeds to step 1618 and transmits an instruction to theheater to decrease the output by 5%, and proceeds to step 1612 andcontinues the process from that step. It is noted that while the heatercould decrease output in 5% increments it is contemplated that anysatisfactory incremental value could be chosen for optimization of thesystem (e.g., 1%, 2%, 5%, 10%, etc.). If a negative determination ismade, then the heater control logic 80 proceeds to step 1620 andtransmits an error condition signal, and then ends the process.

FIG. 23H is another flowchart illustrating processing logic of theheater control logic 80 communicating with a heater. In step 1622, theheater logic 80 receives operational data from ambient noise sensors. Instep 1624, the heater logic 80 transmits operational data from ambientnoise sensors to memory. In step 1626, the heater logic 80 determinesthe average ambient noise setpoint based on operational data from thesensors. In step 1628, the heater logic 80 receives operational datafrom heater noise sensors. In step 1630, the heater logic 80 determinesif the decibel level is above the average ambient setpoint. If apositive determination is made, the process proceeds to step 1632. If anegative determination is made, the process returns to step 1628. Instep 1632, the heater control logic 80 determines if there are anyretries remaining. If a positive determination is made, then the heatercontrol logic 80 proceeds to step 1634 and transmits an instruction tothe heater to decrease performance by 5%, and proceeds to step 1628 andcontinues the process from that step. It is noted that while the heatercould decrease performance in 5% increments it is contemplated that anysatisfactory incremental value could be chosen for optimization of thesystem (e.g., 1%, 2%, 5%, 10%, etc.). If a negative determination ismade, then the heater control logic 80 proceeds to step 1636 andtransmits an error condition signal, and then ends the process.

It is noted that the processing logic of the heater control logic 80shown in FIGS. 23G and 23H could be combined into a process thatdetermines the average ambient noise level over a given period of timeand then saves the average ambient noise level to the memory for laterretrieval as the maximum ambient noise setpoint data for heateroperation, illustrated in step 1610 of FIG. 23G. The process could thenproceed according to the steps as illustrated in FIG. 23G as describedabove.

FIG. 23I is a flowchart illustrating processing logic of the heatercontrol logic 80 determining alert conditions of a heater. The heatercontrol logic 80 proceeds with four parallel routine sequences thatrespectively begin with steps 1638, 1648, 1658, and 1668. Each routinesequence is discussed sequentially, though it should be understood thatthe routine loops could operate in parallel, or alternatively, in serieswith each other. The first sequence begins in step 1638 where the heatercontrol logic 80 retrieves factory specified life expectancy data frommemory. In step 1640, the heater control logic 80 determines an alertthreshold, e.g., less than 90% of heater life expectancy remaining orruntime value. In step 1642, the heater control logic 80 receivesoperational data on heater runtime. In step 1642, the heater controllogic 80 determines if the heater runtime is greater than the threshold.If a negative determination is made, then the process returns to step1642 and continues to receive operational data on heater runtime. If apositive determination is made, then the process proceeds to step 1646where an alert is transmitted to a user, and the process ends.

The second sequence begins in step 1648 where the heater control logic80 retrieves factory specified operating temperature data from memory.In step 1650, the heater control logic 80 determines an alert threshold,e.g., a temperature value that is 10% above or below operatingtemperature. In step 1652, the heater control logic 80 receivesoperational data on heater system operating temperature. In step 1654,the heater control logic 80 determines if the heater system operatingtemperature exceeds the threshold, or is outside of a threshold range.If a negative determination is made, then the process returns to step1652 and continues to receive operational data on heater systemoperating temperature. If a positive determination is made, then theprocess proceeds to step 1656 where an alert is transmitted to a user,and the process ends.

The third sequence begins in step 1658 where the heater control logic 80retrieves factory specified power consumption data from memory. In step1660, the heater control logic 80 determines an alert threshold, e.g.,power value that is 110% of specified power consumption. In step 1662,the heater control logic 80 receives operational data on heater systempower consumption. In step 1664, the heater control logic 80 determinesif the heater system power consumption is greater than the threshold. Ifa negative determination is made, then the process returns to step 1662and continues to receive operational data on heater system powerconsumption. If a positive determination is made, then the processproceeds to step 1666 where an alert is transmitted to a user, and theprocess ends.

The fourth sequence begins in step 1668 where the heater control logic80 retrieves maximum carbon monoxide output setpoint from memory, e.g.,the maximum permitted carbon monoxide output for the heater. In step1670, the heater control logic 80 determines an alert threshold, e.g.,905 of maximum carbon monoxide output. In step 1672, the heater controllogic 80 receives operational data on heater system carbon monoxideoutput. In step 1674, the heater control logic 80 determines if theheater system carbon monoxide output is greater than the threshold. If anegative determination is made, then the process returns to step 1672and continues to receive operational data on heater system carbonmonoxide output. If a positive determination is made, then the processproceeds to step 1676 where it transmits an instruction to the heater todeactivate. The process then proceeds to step 1678 and transmits analert to a user, and the process ends.

FIG. 23J is a flowchart illustrating the procedure implemented when heatis being requested by a user. In step 1680, the heater control logic 80receives an instruction that heat is called for. In step 1682, theheater control logic 80 proceeds to check if the heater has power. Instep 1684, the heater control logic determines if the heater has power.If a negative determination is made, then the process proceeds to step1714. If a positive determination is made, then the process proceeds tostep 1686. In step 1714, the heater control logic 80 determines if thereare any retries remaining. If a positive determination is made then theprocess returns to step 1682, but if a negative determination is madethen the process proceeds to step 1716 where the heater control logic 80indicates an error condition and the process ends. As referenced above,if a positive determination is made in step 1684, then the processproceeds to step 1686. In step 1686, the heater control logic 80 checksthe gas pressure. In step 1688, the heater control logic 80 determinesif the pressure is within the specified range. If a positivedetermination is made, then the process proceeds to step 1690. If anegative determination is made, then the process proceeds to step 1718.In step 1718, the heater control logic 80 determines if there are anyretries remaining. If a positive determination is made then the processreturns to step 1686. If a negative determination is made then theprocess proceeds to step 1720 where the heater control logic 80indicates an error condition and the process ends. As referenced aboveif a positive determination is made in step 1688, then the processproceeds to step 1690. In step 1690, the heater control logic 80 checksthe blower operation. In step 1692, the heater control logic 80determines if the air pressure is within the specified range. If apositive determination is made, then the process proceeds to step 1694.If a negative determination is made, then the process proceeds to step1722. In step 1722, the heater control logic 80 determines if there areany retries remaining. If a positive determination is made then theprocess returns to step 1690. If a negative determination is made thenthe process proceeds to step 1724 where the heater control logic 80indicates an error condition and the process ends. As referenced aboveif a positive determination is made in step 1692, then the processproceeds to step 1694. In step 1694, the heater control logic 80 checksthe water flow. In step 1696, the heater control logic 80 determines ifthe flow rate (GPM) is within the specified range. If a positivedetermination is made, then the process proceeds to step 1698. If anegative determination is made, then the process proceeds to step 1726.In step 1726, the heater control logic 80 determines if there are anyretries remaining. If a positive determination is made then the processproceeds to step 1728 where it sends an electronic signal to the pump toincrease or decrease the flow by 5%, and then returns to step 1694. Itis noted that while the pump could increase or decrease flow in 5%increments it is contemplated that any satisfactory incremental valuecould be chosen for optimization of the system (e.g., 1%, 2%, 5%, 10%,etc.). If a negative determination is made in step 1726 then the processproceeds to step 1730 where the heater control logic 80 indicates anerror condition and the process ends. As referenced above if a positivedetermination is made in step 1696, then the process proceeds to step1698. In step 1698, the heater control logic 80 queries for an operationtemperature setpoint. In step 1700, the heater control logic 80determines if the operation temperature setpoint has been received. If apositive determination is made, then the process proceeds to step 1702.If a negative determination is made, then the process proceeds to step1732. In step 1732, the heater control logic 80 determines if there areany retries remaining. If a positive determination is made then theprocess proceeds to step 1734 where it prompts the heater for a desiredwater temperature, and then returns to step 1698. If a negativedetermination is made in step 1732 then the process proceeds to step1736 where the heater control logic 80 indicates an error condition andthe process ends. As referenced above if a positive determination ismade in step 1700, then the process proceeds to step 1702. In step 1702,the heater control logic 80 electronically receives data relating to thewater temperature. In step 1704, the heater control logic 80 determinesif the operation temperature setpoint is greater than the watertemperature. If a positive determination is made, then the processproceeds to step 1706. If a negative determination is made, then theprocess proceeds to step 1740. In step 1740, the heater control logic 80places the heater in standby and returns to step 1702. As referencedabove if a positive determination is made in step 1704, then the processproceeds to step 1706. In step 1706, the heater control logic 80 engagesthe heater. In step 1708, the heater control logic 80 starts a timer. Instep 1710, the heater control logic 80 determines if the temperaturesetpoint is lower than the water temperature. If a positivedetermination is made, then the process proceeds to step 1712 where itdeactivates the heater and the process ends. If a negative determinationis made, then the process proceeds to step 1742. In step 1742, theheater control logic 80 determines if the operation duration hasexceeded the threshold. If a positive determination is made, then theprocess proceeds to step 1712 where it deactivates the heater and theprocess ends. If a negative determination is made then the processreturns to step 1706.

FIG. 24 is a diagram 1800 illustrating lighting control logic 78.Lighting control logic 78 could incorporate and/or be in communicationwith a variety of types of data and/or data sources. More specifically,lighting control logic 78 can communicate with, or receive, user inputdata 1802, lighting operational data 1804, lighting factoryspecifications 1806, lighting configuration parameters 1808, web data1810, pool configuration parameters 1812, data from related devices1814, health monitoring data 1816 and/or external sensor data 1818.

User input data 1802 could include lighting color, lighting intensity,lighting duration, timers, schedule, default program(s), pooltemperature setpoint(s), etc. Lighting operational data 1804 couldinclude status (on/off), cycles (on/off), line voltage, current draw,power consumption, environment (water/air), temperature (lights),ambient light, light color, light intensity, etc. Lighting factoryspecifications 1806 could include lumen output, life expectancy, currentdraw, input voltage, power consumption, operating environment, etc.Lighting configuration parameters 1808 could include IP address, GPScoordinates, zip code, time and date, etc. Web data 1810 could includelocation (based on IP address), time and date, sunrise/sunset data,local lighting code, regional and local weather forecast data, etc. Poolconfiguration parameters 1812 could include pool surface area, poolgeometry, pool liner color, pool cover (yes/no), pool cover schedule,etc. Data from related devices 1814 could include data relating to atleast the following: additional lights/systems, chlorinator(s), pump(s),cleaner(s), water feature(s), heater (gas), heater (solar), chemicaldispenser, valve(s), pool cover (various), controller, spa, water slide,etc. For example, the following relationships could exist between thelighting control logic 78 the related devices: valves (activate waterfeatures, solenoid, dancing waters, etc.), and water slide (shows path,auto-on). Health monitoring data 1816 could include errors, runtime,estimated lumen output, average power consumption, line voltage, linecurrent, percent of light output, operating environment, warrantycountdown, water pressure, etc. External sensor data 1818, could includeambient light, lighting output, motion/occupancy, bather detection,temperature (pool), moisture, chlorine content, pH level, etc. While itmay be desirable for external sensors to monitor/provide data on as manysystem parameters as possible (thereby providing greater optimization,automation, and user/operator comfort), it is contemplated that somesystems need not utilize an external sensor to monitor every systemparameter. For example, if a pool temperature sensor has not beeninstalled in a particular system, the user/operator can provide thisinformation by first determining the pool temperature (e.g., by checkinga thermometer, thermocouple, etc.) and then entering the pooltemperature into the system via a user interface. FIGS. 25A-25AB areflowcharts illustrating processing steps of the lighting control logic78. FIG. 25A is a flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1820, the lighting control logic 78 receives an instruction to activatethe lighting system. In step 1822, the lighting control logic 78retrieves data pertaining to factory specified power parameters frommemory, e.g., parameters relating to power consumption, current draw,and line voltage. In step 1824, the lighting control logic 78 receivesline power operational data. In step 1826, the lighting logic 78determines whether the line power operational data is within factoryspecifications. If a positive determination is made, the processproceeds to step 1828. If a negative determination is made, the processproceeds to step 1830. In step 1828, the lighting control logic 78transmits an instruction to the lighting system to activate, and theprocess ends. As referenced above, if a negative determination is madeat step 1826, then the process proceeds to step 1830. In step 1830, thelighting control logic 78 determines if there are any retries remaining.If a positive determination is made, then the lighting control logic 78proceeds to step 1824 and continues the process from that step. If anegative determination is made, then the lighting control logic 78proceeds to step 1832 and transmits an error condition signal, and theprocess ends.

FIG. 25B is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1832, the lighting control logic 78 receives an instruction to activatethe lighting system. In step 1834, the lighting control logic 78retrieves factory specified operating environment data from memory,e.g., is the light in air or water. In step 1836, the lighting controllogic 78 receives data from lighting fixture moisture sensor. In step1838, the lighting control logic 78 determines the environment of thelighting fixture, e.g., is the fixture in air or water. In step 1840,the lighting control logic 78 determines if the lighting fixture is inthe environment specified by the factory specified operatingenvironment. If a positive determination is made, the process proceedsto step 1842. If a negative determination is made, the process proceedsto step 1844. In step 1842, the lighting control logic 78 transmits aninstruction to the lighting system to activate, and the process ends. Asreferenced above, if a negative determination is made at step 1840, thenthe process proceeds to step 1844. In step 1844, the lighting controllogic 78 determines if there are any retries remaining. If a positivedetermination is made, then the lighting control logic 78 proceeds tostep 1836 and continues the process from that step. If a negativedetermination is made, then the lighting control logic 78 proceeds tostep 1846 and transmits an error condition signal, and the process ends.

FIG. 25C is a flowchart illustrating a process for a user to define alight show. In step 1848, the lighting control logic 78 prompts the userfor a desired lighting color. In step 1850, the lighting control logic78 receives the desired lighting color data from the user. In step 1852,the lighting control logic 78 prompts the user for a desired lightingspeed. In step 1854, the lighting control logic 78 receives the desiredlighting speed data from the user. In step 1856, the lighting controllogic 78 prompts the user for a desired lighting motion profile. In step1858, the lighting control logic 78 receives desired lighting motionprofile data from the user. In step 1860, the lighting control logic 78retrieves pool geometry data from memory. In step 1862, the lightingcontrol logic 78 processes the data received from the user and the poolgeometry data. In step 1864, the lighting control logic 78 generates avirtual preview of a light show from the user data and pool geometrydata. In step 1866, the lighting control logic 78 transmits the virtualpreview of the light show to the user. In step 1868, the lightingcontrol logic 78 prompts the user to save virtual preview parameters tothe memory. In step 1870, the lighting control logic 78 determines ifthe user has saved the parameters. If a positive determination is madethen the process proceeds to step 1872 where the lighting control logic78 transmits the parameters to memory as a stored light show, and theprocess ends. If a negative determination is made, then the processproceeds to step 1874 where the lighting control logic 78 prompts theuser to enter new parameters, and then proceeds to step 1876. In step1876, the lighting control logic 78 determines if the user has electedto enter new parameters. If a positive determination is made then theprocess returns to step 1848. If a negative determination is made thenthe process ends.

FIG. 25D is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1878, the lighting control logic 78 determines the geographic locationof the pool, e.g., based on IP address or configuration parameters. Instep 1880, the lighting control logic 78 receives sunrise/sunset datafrom the web based on the geographic location. In step 1882, thelighting control logic 78 receives current time data. In step 1886, thelighting control logic 78 determines if the current time is aftersunset. If a positive determination is made, the process proceeds tostep 1888. If a negative determination is made, the process proceeds tostep 1884 where the lighting control logic 78 delays operation for apredetermined period of time, and after the expiration of thepredetermined period of time returns to step 1882. As referenced above,if a positive determination is made at step 1886, then the processproceeds to step 1888. In step 1888, the lighting control logic 78determines if the current time is before sunrise. If a positivedetermination is made, then the lighting control logic 78 proceeds tostep 1890 where it transmits an instruction to activate the lightingsystem, and the process ends. If a negative determination is made, thenthe lighting control logic 78 proceeds to step 1892 where it delaysoperation for a predetermined period of time, and after the expirationof the predetermined period of time returns to step 1882.

FIG. 25E is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1894, the lighting control logic 78 determines the geographic locationof the pool, e.g., based on IP address or configuration parameters. Instep 1896, the lighting control logic 78 receives sunrise/sunset datafrom the web based on the geographic location. In step 1898, thelighting control logic 78 receives current time data. In step 1900, thelighting control logic 78 determines if the current time is aftersunset. If a positive determination is made, the process proceeds tostep 1902. If a negative determination is made, the process proceeds tostep 1910 where the lighting control logic 78 delays operation for apredetermined period of time, and after the expiration of thepredetermined period of time returns to step 1898. As referenced above,if a positive determination is made at step 1900, then the processproceeds to step 1902. In step 1902, the lighting control logic 78determines if the current time is before sunrise. If a positivedetermination is made, then the lighting control logic 78 proceeds tostep 1904. If a negative determination is made, then the lightingcontrol logic 78 proceeds to step 1892 where it delays operation for apredetermined period of time, and after the expiration of thepredetermined period of time returns to step 1898. As referenced above,if a positive determination is made at step 1902, then the processproceeds to step 1904. In step 1904, the lighting control logic 78receives operational data from a pool cleaner. In step 1906, thelighting control logic 78 determines if the pool cleaner is running. Ifa negative determination is made, then the process returns to step 1898.If a positive determination is made, then the process proceeds to step1908 where the lighting control logic 78 transmits an instruction toactivate the lighting system.

FIG. 25F is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1914, the lighting control logic 78 receives operational data from awater feature. In step 1916, the lighting control logic 78 determinesthe operational status of the water feature. In step 1918, the lightingcontrol logic 78 determines if the water feature is running. If anegative determination is made, then the process returns to step 1914.If a positive determination is made, then the process proceeds to step1920 where the lighting control logic 78 interlocks with the waterfeature. In step 1922, the lighting control logic 78 transmits aninstruction to the lighting system to activate.

FIG. 25G is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1924, the lighting control logic 78 receives operational data from apool cover. In step 1926, the lighting control logic 78 determines theoperational status of the pool cover, e.g., is the pool cover open orclosed. In step 1928, the lighting control logic 78 determines if thepool cover is open. If a positive determination is made, then theprocess returns to step 1924. If a negative determination is made, thenthe process proceeds to step 1930 where the lighting control logic 78transmits an instruction to the lighting system to deactivate, and thenreturns to step 1924.

FIG. 25H is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1932, the lighting control logic 78 receives an instruction to activatethe lighting system. In step 1934, the lighting control logic 78receives operational data from a pool cover. In step 1936, the lightingcontrol logic 78 determines the operational state of the pool cover,e.g., is the pool cover open or closed. In step 1938, the lightingcontrol logic 78 determines if the pool cover is open. If a positivedetermination is made, then the process proceeds to step 1940 where thelighting control logic 78 transmits an instruction to the lightingsystem to activate and then returns to step 1934. If a negativedetermination is made, then the process proceeds to step 1942 where thelighting control logic 78 determines if there are any retries remaining.If a positive determination is made, then the process returns to step1934. If a negative determination is made, then the process proceeds tostep 1944 where an error condition is transmitted, and the process ends.

FIG. 25I is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1946, the lighting control logic 78 receives an instruction to activatethe lighting system. In step 1948, the lighting control logic 78receives operational data from a pool cover. In step 1950, the lightingcontrol logic 78 determines the operational state of the pool cover,e.g., is the pool cover open or closed. In step 1952, the lightingcontrol logic 78 determines if the pool cover is open. If a positivedetermination is made, then the process proceeds to step 1960 where thelighting control logic 78 transmits an instruction to the lightingsystem to activate, and the process ends. If a negative determination ismade, then the process proceeds to step 1954 where the lighting controllogic 78 prompts a user to open the pool cover. In step 1956, thelighting control logic 78 determines if the user has issued aninstruction to open the pool cover. If a negative determination is made,then the process returns to step 1948. If a positive determination ismade, then the process proceeds to step 1958 where the lighting controllogic 78 transmits an instruction to the pool cover to open, and theprocess ends.

FIG. 25J is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step1962, the lighting control logic 78 receives a minimum ambient lightsetpoint value. In step 1964, the lighting control logic 78 receives amaximum ambient light setpoint value. In step 1966, the lighting controllogic 78 receives a current ambient light value from an external sensor.In step 1968, the lighting control logic 78 determines if the currentambient light value is below the minimum ambient light setpoint. If anegative determination is made, then the process returns to step 1966.If a positive determination is made, then the process proceeds to step1970 where the lighting control logic 78 transmits an instruction to thelighting system to activate the lights. In step 1972, the lightingcontrol logic 78 receives a current ambient light value from an externalsensor. In step 1974, the lighting control logic 78 determines if thecurrent ambient light value is below a minimum ambient light setpoint.If a positive determination is made, then the process proceeds to step1980 where the lighting control logic 78 transmits an instruction to thelighting system to increase the lumen output by 5% and then returns tostep 1972. It is noted that while the lighting system could increaselumen output in 5% increments it is contemplated that any satisfactoryincremental value could be chosen for optimization of the system (e.g.,1%, 2%, 5%, 10%, etc.). If a negative determination is made, then theprocess proceeds to step 1976. In step 1976, the lighting control logic78 determines if the current ambient light value is above the maximumambient light setpoint. If a negative determination is made (e.g., theambient light is in the acceptable range—above the minimum setpoint andbelow the maximum setpoint), then the process proceeds to step 1978where it delays for a predetermined time period and then returns to step1972. If a positive determination is made, then the process proceeds tostep 1984 where the lighting control logic 78 determines if there areany retries remaining. If a negative determination is made, then theprocess proceeds to step 1986 where the lighting control logic 78transmits an instruction to the lighting system to deactivate the lightsand then returns to step 1966. If a positive determination is made, thenthe process proceeds to step 1982 where the lighting control logic 78transmits an instruction to the lighting system to decrease lumen outputby 5% and then returns to step 1972. It is noted that while the lightingsystem could increase lumen output in 5% increments it is contemplatedthat any satisfactory incremental value could be chosen for optimizationof the system (e.g., 1%, 2%, 5%, 10%, etc.).

FIG. 23K is a flowchart illustrating processing logic of the lightingcontrol logic 78 determining an error condition and preventativemaintenance reminders for a lighting system. The lighting control logic78 proceeds with six parallel routine sequences that respectively beginwith steps 1988, 1994, 2004, 2014, 2024, 2034. Each routine sequence isdiscussed sequentially, though it should be understood that the routineloops could operate in parallel, or alternatively, in series with eachother. The first sequence begins in step 1988 where the lighting controllogic 78 monitors for an error condition. In step 1990, the lightingcontrol logic 78 determines if there is an error condition. If anegative determination is made, then the process returns to step 1988.If a positive determination is made, then the process proceeds to step1992 where the lighting control logic 78 transmits an error condition.In step 1993, the lighting control logic 78 determines if the user hassnoozed the error condition. If a negative determination is made, thenthe process ends. If a positive determination is made, then the processproceeds to step 1995 where it delays for a predetermined period of timeand then returns to step 1992.

The second sequence begins at step 1994, where the lighting controllogic 78 retrieves factory specified life expectancy data from memory.In step 1996, the lighting control logic 78 determines a preventativemaintenance threshold, e.g., less than 90% of light life expectancyremaining or runtime value. In step 1998, the lighting control logic 78receives operational data on lighting system runtime. In step 2000, thelighting control logic 78 determines if the lighting system runtime isgreater than the threshold. If a negative determination is made, thenthe process returns to step 1998 and continues to receive operationaldata on lighting system runtime. If a positive determination is made,then the process proceeds to step 2002 where a preventative maintenancereminder is transmitted to a user, and the process ends.

The third sequence begins in step 2004 where the lighting control logic78 retrieves factory specified lumen output data from memory. In step2006, the lighting control logic 78 determines a maintenance threshold,e.g., a lumen output value that is 90% of a specified lumen output. Instep 2008, the lighting control logic 78 receives operational data onlighting system lumen output. In step 2010, the lighting control logic78 determines if the lighting system operating lumen output is less thanthe threshold. If a negative determination is made, then the processreturns to step 2008 and continues to receive operational lumen outputdata for the lighting system. If a positive determination is made, thenthe process proceeds to step 2012 where a preventative maintenancereminder is transmitted to a user, and the process ends.

The fourth sequence begins in step 2014 where the lighting control logic78 retrieves factory specified power consumption data from memory. Instep 2016, the lighting control logic 78 determines a maintenancethreshold, e.g., power value that is 110% of specified powerconsumption. In step 2018, the lighting control logic 78 receivesoperational data on lighting system power consumption. In step 2020, thelighting control logic 78 determines if the lighting system powerconsumption is greater than the threshold. If a negative determinationis made, then the process returns to step 2018 and continues to receiveoperational data on lighting system power consumption. If a positivedetermination is made, then the process proceeds to step 2022 where apreventative maintenance reminder is transmitted to a user, and theprocess ends.

The fifth sequence begins in step 2024 where the lighting control logic78 retrieves factory specified input voltage data from memory. In step2026, the lighting control logic 78 determines a maintenance threshold,e.g., an input voltage value that is +/−10% of specified line voltage.In step 2028, the lighting control logic 78 receives operational data onlighting system line voltage. In step 2030, the lighting control logic78 determines if the lighting system line voltage is greater than thethreshold. If a negative determination is made, then the process returnsto step 2028 and continues to receive operational data on lightingsystem line voltage. If a positive determination is made, then theprocess proceeds to step 2032 where a preventative maintenance reminderis transmitted to a user, and the process ends.

The sixth sequence begins in step 2034 where the lighting control logic78 retrieves factory warranty data from memory. In step 2036, thelighting control logic 78 determines a maintenance threshold, e.g., 90%of the time period of the factory warranty has expired. In step 2038,the lighting control logic 78 receives operational data on lightingsystem runtime. In step 2040, the lighting control logic 78 determinesif the lighting system runtime is greater than the threshold. If anegative determination is made, then the process returns to step 2038and continues to receive operational data on lighting system runtime. Ifa positive determination is made, then the process proceeds to step 2042where a preventative maintenance reminder is transmitted to a user, andthe process ends.

FIG. 25L is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2044, the lighting control logic 78 receives lighting system temperatureoperational data. In step 2046, the lighting control logic 78 determinesif the lighting system needs to scale back lumen output due totemperature. If a negative determination is made, then the processreturns to step 2044. If a positive determination is made, then theprocess proceeds to step 2048 where the lighting control logic 78receives pool temperature operational data. In step 2050, the lightingcontrol logic 78 determines the required reduction in pool temperatureto return the lighting system to full lumen output. In step 2052, thelighting control logic 78 transmits an instruction to the heater toreduce the temperature by the required amount, and then returns to step2044.

FIG. 25M is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2054, the lighting control logic 78 receives lighting system temperatureoperational data. In step 2056, the lighting control logic 78 determinesif the lighting system needs to scale back lumen output due totemperature. If a negative determination is made, then the processreturns to step 2054. If a positive determination is made, then theprocess proceeds to step 2058 where the lighting control logic 78transmits an instruction to the heater instructing it to decrease outputby 5%, and then returns to step 2054. It is noted that while the heatercould decrease output in 5% increments it is contemplated that anysatisfactory incremental value could be chosen for optimization of thesystem (e.g., 1%, 2%, 5%, 10%, etc.).

FIG. 25N is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2060, the lighting control logic 78 retrieves pool temperature setpointdata from memory. In step 2062, the lighting control logic 78 receivespool temperature operational data. In step 2064, the lighting controllogic 78 determines the range between temperature setpoint andtemperature operational data. In step 2066, the lighting control logic78 retrieves RGB color table from memory. In step 2068, the lightingcontrol logic 78 generates a lookup table including desired RGB colorspectrum and associated temperature range (e.g., from blue at measuredtemperature to white at setpoint). In step 2070, the lighting controllogic 78 receives pool temperature operational data. In step 2072, thelighting control logic 78 determines the RGB color associated withtemperature operational data. In step 2074, the lighting control logic78 transmits an instruction to the lighting system to display the RGBcolor associated with the pool temperature, and then returns to step2070.

FIG. 25O is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2076, the lighting control logic 78 retrieves chlorine level setpointdata from memory. In step 2078, the lighting control logic 78 receiveschlorine level operational data. In step 2080, the lighting controllogic 78 determines the range between chlorine level setpoint andchlorine level operational data. In step 2082, the lighting controllogic 78 retrieves RGB color table from memory. In step 2084, thelighting control logic 78 generates a lookup table including desired RGBcolor spectrum and associated chlorine level range (e.g., from green atmeasured temperature to purple at setpoint). In step 2086, the lightingcontrol logic 78 receives chlorine level operational data. In step 2088,the lighting control logic 78 determines the RGB color associated withchlorine level operational data. In step 2090, the lighting controllogic 78 transmits an instruction to the lighting system to display theRGB color associated with the chlorine level. In step 2092, the lightingcontrol logic 78 determines if the chlorine level operational data isequal to the chlorine level setpoint. If a positive determination ismade, then the process proceeds to step 2094 where the lighting controllogic 78 transmits a message stating that the pool chemistry is “OK,”and the process ends. If a negative determination is made, then theprocess proceeds to step 2096 where the lighting control logic 78transmits a message stating that chlorine should be added to the pool.The process then proceeds to step 2098 where it delays for apredetermined period of time before returning to step 2086.

FIG. 25P is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2100, the lighting control logic 78 retrieves chlorine level setpointdata from memory. In step 2102, the lighting control logic 78 receiveschlorine level operational data. In step 2104, the lighting controllogic 78 determines if the chlorine level operational data is equal tothe chlorine level setpoint. If a positive determination is made, thenthe process returns to step 2102. If a negative determination is madethen the process proceeds to step 2106 where it retrieves a lightingprogram associated with a chlorine imbalance from memory, e.g., activateyellow or flashing yellow light to alert a user to a chlorine imbalance.In step 2108, the lighting control logic 78 transmits an instruction tothe lighting system to display the program associated with a chlorineimbalance, and then returns to step 2102.

FIG. 25Q is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2110, the lighting control logic 78 monitors for user-selected lightshows and colors. In step 2112, the lighting control logic 78 determinesif the user has selected a light show or colors. If a negativedetermination is made, then the process returns to step 2110. If apositive determination is made, then the process proceeds to step 2114where the lighting control logic 78 receives parameters of theuser-selected light show or color. In step 2116, the lighting controllogic 78 receives a timestamp for the user-selected light show orcolors. In step 2118, the lighting control logic 78 transmits theparameters and timestamp to memory. In step 2120, the lighting controllogic 78 determines the most commonly selected light show or colors. Instep 2122, the lighting control logic 78 saves the most commonlyselected light show or colors to memory as a default lighting program,and then returns to step 2110.

FIG. 25R is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. Thisprocess includes two parallel branches for defining a lighting programfor pool features and displaying a lighting program for a specific poolfeatures. The process begins at steps 2124 and 2144. In step 2124, thelighting control logic 78 monitors for user-selected light shows andcolors. In step 2126, the lighting control logic 78 determines if theuser has selected a light show or colors. If a negative determination ismade, then the process returns to step 2124. If a positive determinationis made, then the process proceeds to step 2128 where the lightingcontrol logic 78 determines if additional pool features are currentlyactive, e.g., pool/spa spillover features. If a negative determinationis made, then the process proceeds to step 2142 where the lightingcontrol logic 78 displays the user-selected light show or colors, andthe process ends. If a positive determination is made, then the processproceeds to step 2130 where it receives operational data of thecurrently active pool features. In step 2132, the lighting control logic78 receives parameters of the user-selected light show or color. In step2134, the lighting control logic 78 receives a timestamp for thecurrently active pool features and lightshow. In step 2136, the lightingcontrol logic 78 transmits the pool feature operational data, light showparameters, and timestamp to memory. In step 2138, the lighting controllogic 78 determines the most commonly selected light show or colorsassociated with the additional pool feature. In step 2140, the lightingcontrol logic 78 saves the most commonly selected light show or colorsto memory as a default lighting program for the additional poolfeatures, and then returns to step 2124.

In step 2144, the lighting control logic 78 monitors for currentlyactive pool features. In step 2146, the lighting control logic 78determines if there are any currently active pool features. If anegative determination is made, then the process returns to step 2144.If a positive determination is made, then the process proceeds to step2148 where the lighting control logic 78 determines if there is a storeddefault lighting program for the pool feature. If a negativedetermination is made, then the process proceeds to step 2124, where itgoes through the process of having a user define a light show for thatpool feature. If a positive determination is made, then the processproceeds to step 2150, where the lighting control logic 78 retrieves thestored default program for the pool feature from memory. In step 2152,the lighting control logic 78 transmits an instruction to the lightingsystem to display the default program for the pool feature, and theprocess ends.

FIG. 25S is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2154, the lighting control logic 78 receives operational data from amotion sensor. In step 2156, the lighting control logic 78 determines ifthe motion sensor has been triggered. If a negative determination ismade, then the process returns to step 2154. If a positive determinationis made, then the process proceeds to step 2158 where the lightingcontrol logic 78 receives sunrise/sunset data from the Internet. In step2160, the lighting control logic 78 receives the current time data. Instep 2162, the lighting control logic 78 determines if the current timeis after sunset. If a negative determination is made, then the processreturns to step 2154. If a positive determination is made, then theprocess proceeds to step 2164. In step 2164, the lighting control logic78 determines if the current time is before sunrise. If a negativedetermination is made, then the process returns to step 2154. If apositive determination is made then the process proceeds to steps 2166and 2168, where the lighting control logic 78 transmits a signal toactivate the lighting system, transmits an alert to the user, and thenends the process.

FIG. 25T is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2170, the lighting control logic 78 receives operational data from amotion sensor. In step 2172, the lighting control logic 78 determines ifthe motion sensor has been triggered. If a negative determination ismade, then the process returns to step 2170. If a positive determinationis made, then the process proceeds to step 2174 where the lightingcontrol logic 78 retrieves a minimum ambient light setpoint value frommemory. In step 2176, the lighting control logic 78 receives ambientlight operational data. In step 2178, the lighting control logic 78determines if the ambient light operational data is below the minimumsetpoint. If a negative determination is made, then the process returnsto step 2170. If a positive determination is made, then the processproceeds to steps 2180 and 2182, where the lighting control logic 78transmits a signal to activate the lighting system, transmits an alertto the user, and then ends the process.

FIG. 25U is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2184, the lighting control logic 78 receives operational data from amotion sensor. In step 2186, the lighting control logic 78 determines ifthe motion sensor has been triggered. If a negative determination ismade, then the process returns to step 2184. If a positive determinationis made, then the process proceeds to step 2188 where the lightingcontrol logic 78 retrieves a minimum ambient light setpoint value frommemory. In step 2190, the lighting control logic 78 receives ambientlight operational data. In step 2192, the lighting control logic 78determines if the ambient light operational data is below the minimumsetpoint. If a negative determination is made, then the process returnsto step 2184. If a positive determination is made, then the processproceeds to step 2194 where it determines if a light show is inprogress. If a negative determination is made, then the process proceedsto step 2202. If a positive determination is made then the processproceeds to step 2196. In step 2196, the lighting control logic 78transmits an instruction to the lighting system to discontinue showingthe current show. As referenced above, if a negative determination ismade in step 2194, then the process proceeds to step 2202. In step 2202,the lighting control logic 78 transmits an instruction to activate thelighting system. Step 2196 and 2202 both proceed to step 2198 where thelighting control logic 78 transmits an instruction to the lightingsystem to display white light at the maximum lumen value. In step 2200,the lighting control logic 78 transmits an alert to the user, and theprocess ends.

FIG. 25V is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2204, the lighting control logic 78 receives operational data from lightsensors. In step 2206, the lighting control logic 78 saves operationaldata from the light sensors to memory. In step 2208, the lightingcontrol logic 78 determines the average setpoint based on operationaldata from the light sensors. In step 2210, the lighting control logic 78determines if there is remaining time to establish the setpoint. If apositive determination is made, then the process returns to step 2204and the setpoint continues to be established. If a negativedetermination is made, then the process proceeds to step 2212 where thelighting control logic 78 determines the acceptable deviation from thesetpoint, e.g., 90% of the setpoint. In step 2214, the lighting controllogic 78 receives operational data from the light sensors. In step 2216the lighting control logic 78 determines if the operational data fromthe light sensors is within the acceptable deviation. If a positivedetermination is made, then the process returns to step 2214. If anegative determination is made, then the process proceeds to step 2218where the lighting control logic 78 transmits an instruction to the pumpto activate. In step 2220, the lighting control logic 78 transmits aninstruction to the chlorinator to activate and then proceeds to step2222 where it delays for a predetermined period of time before returningto step 2204.

FIG. 25W is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2224, the lighting control logic 78 determines the geographic locationof the pool, e.g., based on IP address or configuration parameters. Instep 2226, the lighting control logic 78 receives local weather forecastdata from the Internet/Web. In step 2228, the lighting control logic 78processes the weather forecast and identifies impending inclementweather. In step 2230, the lighting control logic 78 determines if thereis any impending inclement weather. If a negative determination is made,then the process returns to step 2226. If a positive determination ismade, then the process proceeds to step 2232 where the lighting controllogic 78 retrieves a weather alert lighting program from memory and thenproceeds to steps 2234 and 2236. In step 2234, the lighting controllogic 78 transmits an instruction to the lighting system to display theweather alert program, e.g., a flashing white light at maximum lumenoutput. In step 2236, the lighting control logic 78 transmits aninstruction to the pool devices to shield against lightning strike.

FIG. 25X is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2238, the lighting control logic 78 receives operational data fromexternal moisture sensors. In step 2240, the lighting control logic 78determines the presence of precipitation, e.g., versus a splash ofwater, for example. In step 2242, the lighting control logic 78determines if there is precipitation. If a negative determination ismade, then the process proceeds to step 2246. If a positivedetermination is made, then the process proceeds to step 2244 where thelighting control logic 78 transmits an instruction to the lightingsystem to activate, and then returns to step 2238. In step 2246, thelighting control logic 78 receives operational data from the lightingsystem. In step 2248, the lighting control logic 78 determines if thelighting system is active. If a negative determination is made, then theprocess returns to step 2238. If a positive determination is made, thenthe process proceeds to step 2250 where the lighting control logic 78transmits an instruction to the lighting system to deactivate, andreturns to step 2238.

FIG. 25Y is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2252, the lighting control logic 78 monitors safety alarms for incomingoperational data. In step 2254, the lighting control logic 78 receivesincoming operational data from the safety alarms. In step 2256, thelighting control logic 78 determines if a safety alarm has beentriggered. If a negative determination is made, then the process returnsto step 2252. If a positive determination is made, then the processproceeds to step 2258 where the lighting control logic 78 receivesparameters of the user-selected light show or color. In step 2116, thelighting control logic 78 retrieves a safety alarm lighting program fromthe memory. In step 2260, the lighting control logic 78 transmits aninstruction to the lighting system to display the safety alarm program,e.g., a flashing red light at maximum lumen output, and the processends.

FIG. 25Z is another flowchart illustrating processing logic of thelighting control logic 78 communicating with a lighting system. In step2262, the lighting control logic 78 determines the geographic locationof the pool, e.g., based on IP address or configuration parameters. Instep 2264, the lighting control logic 78 receives regional sea turtlemigratory and nesting data from the Internet/Web. In step 2266, thelighting control logic 78 determines the proximity of the pool to seaturtle nesting areas. In step 2268, the lighting control logic 78determines if the pool is located in a sea turtle nesting area. If anegative determination is made, then the process returns to step 2264.If a positive determination is made, then the process proceeds to step2270 where the lighting control logic 78 receives the current data. Insteps 2272 and 2274, the lighting control logic 78 determines if thecurrent date is during the sea turtle nesting season. If a negativedetermination is made then the process returns to step 2270. If apositive determination is made, then the process proceeds to step 2276where the lighting control logic 78 transmits an instruction to thelighting system to lock out all colors other than amber, and the processends.

FIG. 25AA is a flowchart illustrating processing logic of the lightingcontrol logic 78 for controlling multiple light sources. The lightingcontrol logic 78 proceeds with four parallel routine sequences thatrespectively begin with steps 2278, 2288, 2298, 2308. Each routinesequence is discussed sequentially, though it should be understood thatthe routine loops could operate in parallel, or alternatively, in serieswith each other. The first sequence begins in step 2278 where thelighting control logic 78 transmits an instruction to a first lightsource to display a color. In step 2280, the lighting control logic 78monitors a first motion sensor for incoming operational data. In step2282, the lighting control logic 78 receives incoming operational datafrom the first motion sensor. In step 2284, the lighting control logic78 determines if motion has been detected. If a negative determinationis made then the process returns to step 2280. If a positivedetermination is made then the process proceeds to step 2286 where thelighting control logic 78 transmits an instruction to the first lightsource to change the color, and then returns to step 2284.

The second sequence begins in step 2288 where the lighting control logic78 transmits an instruction to a second light source to display a color.In step 2290, the lighting control logic 78 monitors a second motionsensor for incoming operational data. In step 2292, the lighting controllogic 78 receives incoming operational data from the second motionsensor. In step 2294, the lighting control logic 78 determines if motionhas been detected. If a negative determination is made then the processreturns to step 2290. If a positive determination is made then theprocess proceeds to step 2296 where the lighting control logic 78transmits an instruction to the second light source to change the color,and then returns to step 2294.

The third sequence begins in step 2298 where the lighting control logic78 transmits an instruction to a third light source to display a color.In step 2300, the lighting control logic 78 monitors a third motionsensor for incoming operational data. In step 2302, the lighting controllogic 78 receives incoming operational data from the third motionsensor. In step 2304, the lighting control logic 78 determines if motionhas been detected. If a negative determination is made then the processreturns to step 2300. If a positive determination is made then theprocess proceeds to step 2306 where the lighting control logic 78transmits an instruction to the third light source to change the color,and then returns to step 2304.

The nth sequence begins in step 2308 where the lighting control logic 78transmits an instruction to an nth light source to display a color. Instep 2310, the lighting control logic 78 monitors an nth motion sensorfor incoming operational data. In step 2312, the lighting control logic78 receives incoming operational data from the nth motion sensor. Instep 2314, the lighting control logic 78 determines if motion has beendetected. If a negative determination is made then the process returnsto step 2310. If a positive determination is made then the processproceeds to step 2316 where the lighting control logic 78 transmits aninstruction to the nth light source to change the color, and thenreturns to step 2314.

FIG. 25AB is another flowchart illustrating processing steps of thelighting control logic 78 communicating with the lighting system 14 h.In step 2318, the lighting control logic 78 receives water pressureoperational data from external sensor(s) at a first time. In step 2320,the lighting control logic 78 delays for x seconds, where “x” refers toany suitable integral value (e.g., 30, 60, 3600, 7200, etc.). In step2322, the lighting control logic 78 receives water pressure operationaldata from external sensor(s) at a second time. In step 2324, thelighting control logic 78 determines the change (e.g., delta (A)) inwater pressure. In step 2326, the lighting control logic 78 retrievessetpoint data for the acceptable drop, or increase, in water pressurefrom the memory. In step 2328, the lighting control logic 78 determinesif the change in water pressure is acceptable (e.g., by comparing theactual change in water pressure to the acceptable change in waterpressure). If a positive determination is made, then the process returnsto step 2318. If a negative determination is made, then the processproceeds to step 2230 where the lighting control logic 78 retrieves alighting program associated with a drop, or increase, in water pressurefrom the memory (e.g., red lights, red flashing lights, fast pulsinglights for pressure increase, slow pulsing lights for pressure decrease,etc.). In step 2332, the lighting control logic 78 transmitsinstructions the lighting system 14 h to display the lighting programassociated with the drop, or increase, in pressure. Optionally, in step2334, the lighting control system 78 could also for example, transmit a“Backwash” message to the user/operator. The processing control logic 78then returns to step 2318.

The lighting control logic 78 can also manage and/or control thebrightness of a plurality of lights in response to noise or sound. Anambient noise or sound sensor can be used to detect a plurality ofbathers ingress and egress from the swimming pool and even the bathersvoices. For example, the ambient noise sensor can detect voice commandsand/or noise levels and control the lights based such voice commands andnoise levels. Furthermore, the lighting control logic 78 can modulatethe plurality of lights color, tempo, etc. if the control logic sensesmusic, games, voices, etc. Further, the noise sensor could also sensefor games being played by bathers, for example, “Marco Polo,” and adjustoutput of the lights accordingly.

The lighting control logic 78 can also receive input from a pressuresensor for effectively determining depth of the water above the sensor.This sensor can be located in a light or any other suitable location ina pool or spa environment. The lighting control logic 78 can trigger anautomatic water fill routine or draining routine to adjust the waterlevel based on any set level in the system.

FIG. 26 is a diagram 2400 illustrating pool cleaner control logic 76.Pool cleaner control logic 76 could incorporate a variety of types ofdata and/or data sources. More specifically, pool cleaner control logic76 could incorporate user input data 2402, pool cleaner operational data2404, pool cleaner factory specifications 2406, pool cleanerconfiguration parameters 2408, web data 2410, pool configurationparameters 2412, data from related devices 2414, health monitoring data2416, and/or external sensor data 2418. While it may be desirable forexternal sensors to monitor/provide data on as many system parameters aspossible (thereby providing greater optimization, automation, anduser/operator comfort), it is contemplated that some systems need notutilize an external sensor to monitor every system parameter. Forexample, if a pool cover detection sensor has not been installed in aparticular system, the user/operator can provide this information byfirst determining if the pool cover has been deployed (e.g., by visualinspection) and then entering the pool cover deployment status into thesystem via a user interface.

User input data 2402 could include timers, schedules (e.g., on/off andwhat speed), cleaning patterns (e.g., orientation of cleaner), etc. Poolcleaner operational data 2404 could include submersion (e.g., floatswitch and/or moisture sensor), debris level (e.g., collection bag),debris weight, power consumption, current draw, speed of motor (RPM),speed of turbine (RPM), speed of cleaner, orientation of cleaner, etc.In one example, the pool cleaner control logic 76 could make adetermination as to whether energy can be supplied to the cleaner via anintegral turbine. Pool cleaner factor specifications 2406 could includemotor speed, power consumption, current draw, input voltage, lifeexpectancy, etc. Pool cleaner configuration parameters 2408 couldinclude IP address, GPS coordinates, zipcode, time and date, etc. Webdata 2410 could include location (e.g., based on IP address), time anddate, sunrise/sunset data, ambient light, season, etc. Poolconfiguration parameters 2412 could include connected pool devices, poolsurface area, pool geometry, pool liner color, pool cover (e.g., yes orno), pool cover schedule, etc. Data from related devices 2414 couldinclude the pump, booster pump, changeover valve, valve actuator, visionsystem, pool cover, controller, power supply, etc. Health monitoringdata 2416 could include line-to-line balance, grounding, bonding, leakcurrent, runtime, operating temperature, power consumption, etc.External sensor data 2418 could include water circulation, water flowrate, water pressure water turbidity, power consumption, current draw,line voltage, valve actuation, ambient light, debris location, poolcover detection, etc. Using this data, the pool cleaner control logic 76could optimize the operation of the pool cleaner. Examples include,anti-kink/hose un-tangle, adjust performance based on internal sensors,cleaner and/or cleaner circuit pressure sensing, time of day sensing,and send cleaner to dirty/high debris area of the pool.

FIGS. 27A-27O are flowcharts illustrating processing steps of the poolcleaner control logic 76. FIG. 27A is a flowchart illustratingprocessing logic of the pool cleaner control logic 76 communicating witha pump. In step 2420, the pool cleaner control logic 76 receivesinstruction to activate a pool cleaner. In step 2422, the pool cleanercontrol logic 76 receives operation data from a pump. In step 2424, thepool cleaner control logic 76 determines whether the pump is on. If apositive determination is made, the process proceeds to step 2426. If anegative determination is made, then in step 2425 the pool cleanercontrol logic 76 transmits instructions to the pump to activate, andthen proceeds to step 2426. In step 2426, the pool cleaner control logic76 retrieves minimum flow rate setpoint data for the pool cleaneroperation from a memory (e.g., gallons per minute. In step 2428, thepool cleaner control logic 76 receives operational flow rate data 2428.In step 2430, the pool cleaner control logic 76 determines whether theflow rate is above a minimum setpoint. If a positive determination ismade, then the process proceeds to step 2432, where the pool cleanercontrol logic 76 transmits instructions to the pool cleaner to activate,and then the process ends. If a negative determination is made in step2430, then the process proceeds to step 2434, where the pool cleanercontrol logic 76 determines whether there are retries remaining. If apositive determination is made, then in step 2436, the pool cleanercontrol logic 76 transmits instructions to the pump to increase the flowrate (e.g., by 5%), and the process reverts back to step 2428. Ifinstead, a negative determination is made in step 2434, then in step2438, the pool cleaner control logic 76 transmits an error condition,and the process ends.

FIG. 27B is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a booster pump. In step2440, the pool cleaner control logic 76 receives instructions toactivate the pool cleaner. In step 2442, the pool cleaner control logic76 retrieves pool configuration data from memory (e.g., connected pooldevices). In step 2444, the pool cleaner control logic 76 receivesoperational data from a pump. In step 2446, the pool cleaner controllogic 76 determines whether the pump is on. If a positive determinationis made, the process proceeds to step 2448. If a negative determinationis made, in step 2456, the pool cleaner control logic 76 transmitsinstructions to the pump to activate, and the proceeds to step 2448. Instep 2448, the pool cleaner control logic 76 determines whether there isa booster pump. If a positive determination is made, then in step 2450the pool cleaner control logic 76 receives operational data from thebooster pump. In step 2452, the pool cleaner control logic 76 determineswhether the booster pump is on. If a positive determination is made instep 2452, then in step 2454, the pool cleaner control logic 76transmits instructions to the pool cleaner to activate. If a negativedetermination is made in step 2452, then in step 2458 the pool cleanercontrol logic 76 transmits instructions to the booster pump to activate,and then proceeds to step 2454. If a negative determination is made instep 2448, then the process proceeds to step 2454 (as discussed above).

FIG. 27C is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a valve actuator. In step2460, the pool cleaner control logic 76 receives instructions toactivate a pool cleaner. In step 2462, the pool cleaner control logic 76receives operational data from a changeover valve actuator (e.g.,orientation). In step 2464, the pool cleaner control logic 76 determineswhether the valve actuator is in the correct orientation (e.g., valve isopen). If a positive determination is made, then the process proceeds tostep 2466, where the pool cleaner control logic 76 transmitsinstructions to the pool cleaner to activate, and then the process ends.If a negative determination is made in step 2464, then the processproceeds to step 2468, where the pool cleaner control logic 76determines whether there are retries remaining. If a positivedetermination is made, then in step 2470, the pool cleaner control logic76 transmits instructions to the valve actuator to move to the correctorientation (e.g., open), and the process reverts to step 2462. Ifinstead, a negative determination is made in step 2468, then in step2472, the pool cleaner control logic 76 transmits an error condition(e.g., valve seized), and the process ends.

FIG. 27D is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a pressure sensor. In step2474, the pool cleaner control logic 76 receives instructions toactivate a pool cleaner. In step 2476, the pool cleaner control logic 76retrieves pressure setpoint data for pool cleaner operation from memory(e.g., minimum pressure). In step 2478, the pool cleaner control logic76 receives operational data from a pressure sensor. In step 2480, thepool cleaner control logic 76 determines whether the pressure issufficient. If a negative determination is made in step 2480, then instep 2490, the pool cleaner control logic 76 determines whether thereare any retries remaining. If a positive determination is made in step2490, then in step 2492, the pool cleaner control logic 76 transmitsinstructions to the pump to increase output (e.g., by 5%), and theprocess reverts back to step 2478. If a negative determination is madein step 2490, then in step 2494, the pool cleaner control logic 76transmits an error condition (e.g., leak), and the process ends. If apositive determination is made in step 2480, then in step 2482, the poolcleaner control logic 76 retrieves flow rate setpoint data for poolcleaner operation from a memory (e.g., minimum flow rate). In step 2484,the pool cleaner control logic 76 receives operational data from a flowsensor. In step 2486, the pool cleaner control logic 76 determineswhether the flow rate is sufficient. If a positive determination is madein step 2486, then in step 2488, the pool cleaner control logic 76transmits instructions to the pool cleaner to activate, and then theprocess ends. If a negative determination is made in step 2486, then instep 2496, the pool cleaner control logic 76 determines whether thereare any retries remaining. If a positive determination is made, then instep 2498, the pool cleaner control logic 76 transmits instructions tothe pump to increase output (e.g., by 5%), and the process reverts tostep 2484. If instead, a negative determination is made in step 2496,then in step 2500, the pool cleaner control logic 76 transmits an errorcondition (e.g., blockage), and the process ends. It should be notedthat the above process can apply to actuate valves to control the poolcleaner. The valve actuation algorithms are explained in greater detailbelow.

FIG. 27E is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a valve. In step 2502, thepool cleaner control logic 76 receives instructions to activate a poolcleaner. In step 2504, the pool cleaner control logic 76 retrievespressure setpoint data for a pool cleaner operation from a memory (e.g.,minimum circuit pressure). In step 2506, the pool cleaner control logic76 receives operational data from a pressure sensor. In step 2508, thepool cleaner control logic 76 determines whether the circuit pressure issufficient. If a positive determination is made, then in step 2510, thepool cleaner control logic 76 transmits instructions to the pool cleanerto activate, and the process ends. If a negative determination is madein step 2508, then in step 2512, the pool cleaner control logic 76determines whether there are any retries remaining. If a positivedetermination is made, then in step 2514, the pool cleaner control logic76 receives operational data from an input valve (e.g., valve position).In step 2516, the pool cleaner control logic 76 determines requiredvalve actuation to achieve pressure setpoint (e.g., open 90%). In step2518, the pool cleaner control logic 76 transmits instructions to thevalve to actuate by a determined amount. If a negative determination ismade in step 2512, then in step 2520, the pool cleaner control logic 76transmits an error condition (e.g., valve seized), and the process ends.

FIG. 27F is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a pool cleaner submersionsensor. In step 2522, the pool cleaner control logic 76 receivesinstruction to activate a pool cleaner. In step 2524, the pool cleanercontrol logic 76 receives operational data from the pool cleanersubmersion sensor (e.g., float switch or moisture sensor). In step 2526,the pool cleaner control logic 76 determines whether the pool cleaner issubmerged. If a positive determination is made, then in step 2528, thepool cleaner control logic 76 transmits instructions to the pool cleanerto activate. If a negative determination is made in step 2526, then instep 2530, the pool cleaner control logic 76 determines whether thereare any retries remaining. If a positive determination is made, then theprocess reverts to step 2524. If a negative determination is made, thenthe process proceeds to step 2532, where the pool cleaner control logic76 transmits an error condition, and the process ends.

FIG. 27G is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a debris sensor of the poolcleaner collection bag. In step 2534, the pool cleaner control logic 76receives instructions to activate a pool cleaner. In step 2536, the poolcleaner control logic 76 receives operational data from a debris sensorfor a collection bag. In step 2538, the pool cleaner control logic 76determines the debris level of the collection bag. In step 2546, thepool cleaner control logic 76 could optionally transmit instruction toan HMI device to display the debris level of the collection bag. In step2540, the pool cleaner control logic 76 determines whether thecollection bag is full. If a positive determination is made, then instep 2544, the pool cleaner control logic 76 transmits a message to theuser to empty the collection bag, and the process reverts to step 2536.Optionally, in step 2541 the pool cleaner logic 76 could transmit aninstruction to the pool cleaner to swim to a pool skimmer and purge thecollection bag so that the debris from the collection bag is emptiedwithout user intervention and quickly removed from the pool via theskimmer. If a negative determination is made in step 2540, then in step2542, the pool cleaner control logic 76 transmits instructions to thepool cleaner to activate, and the process ends.

FIG. 27H is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a pool cleaner regarding amotor speed threshold. In step 2548, the pool cleaner control logic 76retrieves factory specified pool cleaner motor speed data from memory.In step 2550, the pool cleaner control logic 76 determines the motorspeed threshold for a full collection bag (e.g., 95% of factoryspecified speed). In step 2552, the pool cleaner control logic 76receives operational data from the pool cleaner (e.g., motor speed). Instep 2554, the pool cleaner control logic 76 determines whether themotor speed is below a threshold. If a negative determination is made,the process reverts to step 2552. If a positive determination is made,the process proceeds to step 2556, where the pool cleaner control logic76 transmits a message to the user to empty the collection bag, and theprocess reverts to step 2552.

FIG. 27I is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating regarding line power operationaldata. In step 2558, the pool cleaner control logic 76 receivesinstructions to activate a pool cleaner. In step 2560, the pool cleanercontrol logic 76 retrieves data on factory specified power parametersfrom a memory (e.g., power consumption, current draw, and/or linevoltage). In step 2562, the pool cleaner control logic 76 receives linepower operational data. In step 2564, the pool cleaner control logic 76determines whether the line power is within factory specifications. If apositive determination is made, then in step 2566, the pool cleanercontrol logic 76 transmits instructions to the pool cleaner to activate.If a negative determination is made in step 2564, then in step 2568, thepool cleaner control logic 76 determines whether there are any retriesremaining. If a positive determination is made in step 2568, then theprocess reverts to step 2562. If a negative determination is made instep 2570, then in step 2570, the pool cleaner control logic 76transmits an error condition, and the process ends.

FIG. 27J is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with an internal tachometer. Instep 2572, the pool cleaner control logic 76 receives instructions toactivate a pool cleaner. In step 2580, the pool cleaner control logic 76transmits instructions to the pool cleaner to activate. In step 2574,the pool cleaner control logic 76 retrieves turbine setpoint data for apool cleaner operation from memory (e.g., minimum RPMs). In step 2576,the pool cleaner control logic 76 receives operational data from aninternal tachometer. In step 2578, the pool cleaner control logic 76determines whether the speed of the turbine is sufficient. If a positivedetermination is made in step 2578, the process reverts to step 2576. Ifa negative determination is made in step 2578, then in step 2582, thepool cleaner control logic 76 determines whether there are any retriesremaining. If a positive determination is made in step 2582, then instep 2584, the pool cleaner control logic 76 transmits instructions tothe pump to increase output (e.g., by 5%), and the process reverts tostep 2576. If a negative determination is made in step 2582, then instep 2586, the pool cleaner control logic 76 transmits an errorcondition (e.g., obstruction), and the process ends.

FIG. 27K is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with an internal tachometer. Instep 2588, the pool cleaner control logic 76 receives instructions toactivate a pool cleaner. In step 2596, the pool cleaner control logic 76transmits instructions to the pool cleaner to activate. In step 2590,the pool cleaner control logic 76 retrieves turbine setpoint data for apool cleaner operation from a memory (e.g., minimum RPMs). In step 2592,the pool cleaner control logic 76 receives operational data from aninternal tachometer. In step 2594, the pool cleaner control logic 76determines whether the speed of the turbine is sufficient. If a positivedetermination is made, the process reverts to step 2592. If in step2594, a negative determination is made, then in step 2598, the poolcleaner control logic 76 determines whether there are any retriesremaining. If a positive determination is made in step 2598, then instep 2600, the pool cleaner control logic 76 receives operational datafrom a flow rate sensor. In step 2602, the pool cleaner control logic 76determines the required increase in flow rate to achieve the turbinespeed setpoint. In step 2604, the pool cleaner control logic 76determines the required increase in pump speed to achieve a requiredflow rate. In step 2606, the pool cleaner control logic 76 transmits theinstruction to the pump to increase output by the determined amount, andthe process reverts to step 2592. If a negative determination is made instep 2598, then in step 2608, the pool cleaner control logic 76transmits an error condition (e.g., obstruction), and the process ends.

FIG. 27L is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a pump. In step 2610, thepool cleaner control logic 76 retrieves scheduling data for a poolcleaner operation from a memory (e.g., operating hours, duration,schedule, weather conditions, upcoming events at the site, etc.). Instep 2612, the pool cleaner control logic 76 receives time data from aclock (e.g., current time). In step 2614, the pool cleaner control logic76 determines whether the current time is within hours of operation. Ifa negative determination is made, then the process reverts to step 2612.If a positive determination is made, then in step 2616, the pool cleanercontrol logic 76 receives operational data from a pump. In step 2618,the pool cleaner control logic 76 determines whether the pump is on. Ifa positive determination is made in step 2618, then in step 2620, thepool cleaner control logic 76 transmits instructions to the pool cleanerto activate. If a negative determination is made in step 2618, then instep 2622, the pool cleaner control logic 76 transmits instructions tothe pump to activate, and the process proceeds to step 2620.

FIG. 27M is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with an ambient light sensor. Instep 2624, the pool cleaner control logic 76 receives operational datafrom an ambient light sensor. In step 2626, the pool cleaner controllogic 76 determines the time of day (e.g., day, night, etc.). In step2628, the pool cleaner control logic 76 determines whether it isnighttime. If a negative determination is made, the process reverts tostep 2624. If a positive determination is made, then in step 2630, thepool cleaner control logic 76 receives operational data from a pump. Instep 2632, the pool cleaner control logic 76 determines whether the pumpis on. If a positive determination is made in step 2632, then in step2634, the pool cleaner control logic 76 transmits instructions to thepool cleaner to activate, and the process ends. If a negativedetermination is made in step 2632, then in step 2636, the pool cleanercontrol logic 76 transmits instructions to the pump to activate, and theprocess proceeds to step 2634.

FIG. 27N is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a vision system. In step2638, the pool cleaner control logic 76 receives instructions toactivate a pool cleaner. In step 2640, the pool cleaner control logic 76receives operational data from a vision system (e.g., location ofdebris). In step 2642, the pool cleaner control logic 76 determines thelocation of a high debris area. In step 2644, the pool cleaner controllogic 76 determines the location and orientation of the pool cleaner. Instep 2646, the pool cleaner control logic 76 transmits instructions tothe pool cleaner to traverse the high debris area. The process thenreverts to step 2640.

FIG. 27O is a flowchart illustrating processing steps of the poolcleaner control logic 76 communicating with a software application. Instep 2639 the application displays a graphical representation or imageof the pool on the device on which the software application isinstalled. While step 2639 shows the software application installed on asmartphone, it is to be appreciated that the software application can beinstalled on various devices of the system 10, including but not limitedto, the computer system 20 or the pool/spa control system 14 f. In step2641, the user indicates (e.g., by touching the smartphone screen in theappropriate location) where debris is observed in the pool. In step 2643the software application marks each spot that the user has indicatedwith a graphical overlay (e.g., a box is placed around each indicateddebris area). In step 2645 the software application transmits aninstruction to the cleaner 14 g to navigate to the debris areasindicated by the user and clean the same. The process then ends.

It is noted that the pool cleaner control logic illustrated in FIGS.27A-27O and discussed above could be used to control a pool/spa cleanerthat does not have on-board electronic controls, such as, for example, aconventional suction or pressure cleaner. In such instances, control ofthe cleaner could be implemented by way of a valve actuator that has anassociated processor and network connectivity, such as the valveactuator discussed herein in connection with FIGS. 28-29I. The valveactuator would be in fluid communication with the cleaner, and thecontrol logic discussed in connection with FIGS. 27A-27O would beapplied to control the valve actuator to correspondingly controloperation of the cleaner.

FIG. 28 is a diagram 2700 illustrating valve actuator control logic 74.Valve actuator control logic 74 could incorporate a variety of types ofdata and/or data sources. More specifically, valve actuator controllogic 76 could incorporate user input data 2702, valve actuatoroperational data 2704, valve actuator factory specifications 2706, valveactuator configuration parameters 2708, web data 2710, poolconfiguration parameters 2712, data from related devices 2714, healthmonitoring data 2716, and/or external sensor data 2718.

User input data 2702 could include schedule information (e.g., on/offand what orientation, duration of power on/off for specific orientation,open/close), etc. Valve actuator operational data 2704 could includeline voltage, operation (e.g., on, off, etc.), orientation (e.g., open,close, etc.), power duration, etc. Valve actuator factor specification2706 could include source voltage, power consumption, current draw, etc.Valve actuator configuration parameters 2708 could include IP address,GPS coordinates, zipcode, time and date, etc. Web data 2710 couldinclude location (e.g., based on IP address), time and date,sunrise/sunset data, temperature, ambient light, season, etc. Poolconfiguration parameters 2712 could include pool surface area, poolgeometry, pool line color, pool cover (e.g., yes, no, etc.), pool coverschedule, etc. Data from related devices 2714 could include additionalvalves, pump, heater (e.g., gas, heat pump, etc.), heat (e.g., solar),spa, UV ozone, cleaner, controller, chlorinator, water features, waterslide, skimmer, filter, etc. Health monitoring data 2716 could includepower consumption, current monitoring, source voltage, etc. Externalsensor data 2718 could include water flow rate, water pressure, etc.While it may be desirable for external sensors to monitor/provide dataon as many system parameters as possible (thereby providing greateroptimization, automation, and user/operator comfort), it is contemplatedthat some systems need not utilize an external sensor to monitor everysystem parameter. For example, if a water pressure sensor has not beeninstalled in a particular system, the user/operator can provide thisinformation by first determining the water pressure (e.g., by visuallyinspecting an analog water pressure gauge) and then entering the waterpressure information into the system via a user interface.

FIGS. 29A-29I are flowcharts illustrating processing steps of the valveactuator control logic 74. FIG. 29A is a flowchart illustratingprocessing steps of the valve actuator control logic 74 communicatingwith a valve actuator. In step 2720, the valve actuator control logic 74receives instructions to actuate a valve. In step 2722, the valveactuator control logic 74 retrieves data on factory specified powerparameters from a memory (e.g., line voltage). In step 2724, the valveactuator control logic 74 receives line voltage operational data. Instep 2726, the valve actuator control logic 74 determines whether theline voltage is within the factory specifications. If a positivedetermination is made, then in step 2728, the valve actuator controllogic 74 transmits instructions to the valve actuator to actuate. If anegative determination is made in step 2726, then in step 2730, thevalve actuator control logic 74 determines whether there are any retriesremaining. If a positive determination is made in step 2730, then theprocess reverts to step 2724. If a negative determination is made instep 2730, then in step 2732, the valve actuator control logic 74transmits an error condition (e.g., undervoltage, overvoltage, etc.),and the process ends.

FIG. 29B is a flowchart illustrating processing steps of the valveactuator control logic 74 communicating with a heater. In step 2734, thevalve actuator control logic 74 receives instructions to activate aheater. In step 2736, the valve actuator control logic 74 receivesoperational data from a pump. In step 2740, the valve actuator controllogic 74 receives operational data from a heater valve actuator (e.g.,orientation) 14 e. In step 2742, the valve actuator control logic 74determines whether the heater valve actuator 14 e is in the correctorientation (e.g., valve is open). If a positive determination is madein step 2742, then in step 2750 a determination is made as to whetherthe pump 14 a is on. If a positive determination is made in step 2750,in step 2744, the valve actuator control logic 74 transmits instructionsto the heater 14 b to activate, and the process ends. If a negativedetermination is made in step 2750 the valve actuator control logic 74transmits an instruction to the pump 14 a to activate and the processthen proceeds to step 2744. If a negative determination is made in step2742, then in step 2738, a determination is made as to whether the pump14 a is on. If a positive determination is made in step 2738, the valveactuator control logic 74 transmits an instruction to the pump 14 a todeactivate. If a negative determination is made in step 2738, theprocess proceeds to step 2754. In step 2752, the valve actuator controllogic 74 determines whether there are any retries remaining. If apositive determination is made in step 2752, then in step 2754, thevalve actuator control logic 74 transmits instructions to the heatervalve actuator 14 e to move to the correct orientation (e.g., open) andthe process then reverts to step 2736. If a negative determination ismade in step 2752, then in step 2756, the valve actuator control logic74 transmits an error condition (e.g., valve seized), and the processends.

FIG. 29C is a flowchart illustrating processing steps of the valveactuator control logic 74 communicating with a heater. In step 2758, thevalve actuator control logic 74 receives instructions to activate aheater. In step 2760, the valve actuator control logic 74 receivesoperational data from a pump. In step 2762, the valve actuator controllogic 74 determines whether the pump is active. If a negativedetermination is made in step 2762, then in step 2776, the valveactuator control logic 74 determines whether there are any retriesremaining. If a positive determination is made in step 2776, then theprocess reverts to step 2760. If a negative determination is made instep 2776, then in step 2778, the valve actuator control logic 74transmits an error condition (e.g., interlock), and the process ends. Ifa positive determination is made in step 2762, then in step 2764, thevalve actuator control logic 74 receives operational data from a heatervalve actuator (e.g., orientation). In step 2766, the valve actuatorcontrol logic 74 determines whether the heater valve actuator is in thecorrect orientation (e.g., valve is open). If a positive determinationis made in step 2766, then in step 2768, the valve actuator controllogic 74 transmits instructions to the heater to activate, and theprocess ends. If a negative determination is made in step 2766, then instep 2770, the valve actuator control logic 74 determines whether thereare any retries remaining. If a positive determination is made in step2770, then in step 2772, the valve actuator control logic 74 transmitsinstructions to the heater valve actuator to move to the correctorientation (e.g., open). If a negative determination is made in step2770, then in step 2774, the valve actuator control logic 74 transmitsan error condition (e.g., valve seized), and the process ends.

FIG. 29D is a flowchart illustrating processing steps of the valveactuator control logic 74 communicating with a water feature valveactuator. In step 2780, the valve actuator control logic 74 receivesinstructions to increase the output of the water stream feature (e.g.,new flow rate setpoint). In step 2782, the valve actuator control logic74 receives operational data from a water feature (e.g., flow rate). Instep 2784, the valve actuator control logic 74 determines whether thewater feature is active. If a positive determination is made in step2784, then in step 2786, the valve actuator control logic 74 determineswhether the flow rate is sufficient. If a positive determination is madein step 2786, then the process ends. If a negative determination is madein step 2786, then in step 2794, the valve actuator control logic 74determines whether there are any retries remaining. If a positivedetermination is made in step 2794, then in step 2796, the valveactuator control logic 74 transmits instructions to the water featurevalve actuator to increase throughput (e.g., by 5%), and the processreverts to step 2782. If a negative determination is made in step 2794,then in step 2798, the valve actuator control logic 74 transmits anerror condition (e.g., blockage), and the process ends. If a negativedetermination is made in step 2784, then in step 2788, the valveactuator control logic 74 determines whether there are any retriesremaining. If a positive determination is made in step 2788, then instep 2790, the valve actuator control logic 74 transmits instructions tothe water feature valve actuator to open, and the process reverts tostep 2782. If a negative determination is made in step 2788, then instep 2792, the valve actuator control logic 74 transmits an errorcondition (e.g., blockage), and the process ends. It is to beappreciated that while flow rate operational data is received from thewater feature in the process described above, similar process stepscould be followed should pressure, or other, operational data bereceived from the water feature.

FIG. 29E is a flowchart illustrating processing steps of the valveactuator control logic 74 communicating with a water feature valveactuator. In step 2800, the valve actuator control logic 74 receivesinstructions to activate a water feature. In step 2802, the valveactuator control logic 74 retrieves flow rate setpoint data for waterfeature operation from a memory (e.g., minimum flow rate). In step 2804,the valve actuator control logic 74 receives operational data from awater feature (e.g., flow rate). In step 2806, the valve actuatorcontrol logic 74 determines whether the water feature is active. If apositive determination is made in step 2806, then in step 2808, thevalve actuator control logic 74 determines whether the flow rate issufficient. If a positive determination is made in step 2808, then theprocess ends. If a negative determination is made in step 2808, then instep 2816, the valve actuator control logic 74 determines whether thereare any retries remaining. If a positive determination is made in step2816, then in step 2818, the valve actuator control logic 74 transmitsinstructions to the water feature valve actuator to increase throughput(e.g., by 5%), and the process reverts to step 2804. If a negativedetermination is made in step 2816, then in step 2820 the valve actuatorcontrol logic 74 transmits an error condition (e.g., blockage), and theprocess ends. If a negative determination is made in step 2806, then instep 2810, the valve actuator control logic 74 determines whether thereare any retries remaining. If a positive determination is made in step2810, then in step 2812, the valve actuator control logic 74 transmitsinstructions to the water feature valve actuator to open, and theprocess reverts to step 2802. If a negative determination is made instep 2810, then in step 2814, the valve actuator control logic 74transmits an error condition (e.g., blockage), and the process ends.

FIG. 29F is a flowchart illustrating processing steps of the valveactuator control logic 74 communicating with a heater valve actuator. Instep 2822, the valve actuator control logic 74 receives instructions toactivate the heater. In step 2824, the valve actuator control logic 74receives operational data from a heater valve actuator (e.g.,orientation). In step 2826, the valve actuator control logic 74determines whether the heater valve actuator is in the correctorientation (e.g., valve is open). If a negative determination is madein step 2826, then in step 2834, the valve actuator control logic 74determines whether there are any retries remaining. If a positivedetermination is made in step 2834, then in step 2836, the valveactuator control logic 74 transmits instructions to the heater valveactuator to move to the correct orientation (e.g., open), and theprocess reverts to step 2824. If a negative determination is made instep 2834, then in step 2838, the valve actuator control logic 74transmits an error condition (e.g., valve seized), and the process ends.If a positive determination is made in step 2826, then in step 2828, thevalve actuator control logic 74 receives operational data from a pumpvalve actuator (e.g., orientation). In step 2830, the valve actuatorcontrol logic 74 determines whether the pump valve actuator is in thecorrect orientation (e.g., valve is open). If a positive determinationis made in step 2830, then in step 2832, the valve actuator controllogic 74 transmits instructions to the heater to activate. If a negativedetermination is made in step 2830, then in step 2840, the valveactuator control logic 74 determines whether there are any retriesremaining. If a positive determination is made in step 2840, then instep 2842, the valve actuator control logic 74 transmits instructions tothe pump valve actuator to move to the correct orientation (e.g., open),and the process reverts to step 2828. If a negative determination ismade in step 2840, then in step 2844, the valve actuator control logic74 transmits an error condition (e.g., valve seized), and the processends.

FIG. 29G is a flowchart illustrating processing steps of the valveactuator control logic 74. In step 2846, the heater valve actuatorreceives instructions to open. In step 2848, the heater valve actuatorsends instructions to the pump valve actuator to open. In step 2850, theheater valve actuator receives operating data from the pump valveactuator. In step 2852, the heater valve actuator determines if the pumpvalve actuator is open. In step 2854, the heater valve actuator moves tothe open orientation.

FIG. 29H is a flowchart illustrating processing steps of the valveactuator control logic 74. In step 2856, the valve actuator controllogic 74 receives instructions to actuate a valve. In step 2858, thevalve actuator control logic 74 receives an input from a timer for xseconds. In step 2860, the valve actuator control logic 74 transmitsinstructions to the valve actuator to move to a desired orientation.

FIG. 29I is a flowchart illustrating processing steps of the valveactuator control logic 74 communicating with a pump. In step 2862, thevalve actuator control logic 74 retrieves operational setpoint data onvalve actuator orientation for a given pump speed (e.g., actuate valveat a given speed). In step 2864, the valve actuator control logic 74receives operational data from a pump (e.g., RPMs). In step 2866, thevalve actuator control logic 74 determines the correct valve actuatororientation for a speed of the pump. In step 2868, the valve actuatorcontrol logic 74 receives operational data from a valve actuator (e.g.,orientation). In step 2870, the valve actuator control logic 74determines whether the valve actuator is in the correct orientation. Ifa positive determination is made in step 2870, then the process revertsto step 2864. If a negative determination is made in step 2870, then instep 2872, the valve actuator control logic 74 determines whether thereare any retries remaining. If a positive determination is made in step2872, then in step 2874, the valve actuator control logic 74 transmitsinstructions to the valve actuator to move to the correct orientation,and the process reverts to step 2868. If a negative determination ismade in step 2872, then in step 2876, the valve actuator control logic74 transmits an error condition (e.g., valve seized), and the processends.

FIG. 30 is a diagram 2900 illustrating water feature control logic 72.Water feature control logic 72 could incorporate a variety of types ofdata and/or data sources. More specifically, water feature control logic72 could incorporate user input data 2902, water feature operationaldata 2904, water feature factory specifications 2906, water featureconfiguration parameters 2908, web data 2910, pool configurationparameters 2912, data from related devices 2914, health monitoring data2916, and/or external sensor data 2918.

User input data 2902, could include timers, schedules, featureparameters (e.g., how high, how much flow for effect), etc. Waterfeature operational data 2904 could include pressure, water flow rate,debris sensing, actuator position, etc. Water feature configurationparameters 2908 could include IP address, GPS coordinates, zipcode, timeand date, etc. Web data 2910 could include location (e.g., based on IPaddress), time and date, sunrise/sunset data, regional/local weatherforecast, wind speed, wind direction, etc. Pool configuration parameters2912 could include connected pool devices, pool surface area, poolgeometry, pool line color, pool cover (e.g., yes, no, etc.), pool coverschedule, etc. Data from related devices 2914 could include additionalwater features, pump, chemistry dispenser, heater (e.g., gas pump, heatpump, etc.), heat (e.g., solar), chiller, spa, UV sanitizer, poolcleaner, controller, chlorinator, water slide, skimmer, filter, voicerecognition/activation system, etc. External sensor data 2918 couldinclude debris sensor, water temperature, motion sensor, ambient noise,etc. While it may be desirable for external sensors to monitor/providedata on as many system parameters as possible (thereby providing greateroptimization, automation, and user/operator comfort), it is contemplatedthat some systems need not utilize an external sensor to monitor everysystem parameter. For example, if a water temperature sensor has notbeen installed in a particular system, the user/operator can providethis information by first determining the water temperature (e.g., bychecking a thermometer, thermocouple, etc.) and then entering the watertemperature into the system via a user interface. Using this data, thewater feature control logic 76 could optimize the operation of the waterfeatures by, for example, determining if the feature has been degradeddue to debris by receiving data from a pressure sensor in the unit,determining appropriate operation by receiving weather data (e.g., windlocation, direction, and speed) and modifying operating parameters, notrunning the water feature or altering the operation thereof if users arepresent (e.g., auto-home, or auto-away), enhance turn-over and make pHadjustments, varying the height of water from a water feature by using avariable position actuator, self-leveling the water feature using anactuator and level sensor.

FIGS. 31A-31F are flowcharts illustrating processing steps of the waterfeature control logic 72. FIG. 31A is a flowchart illustratingprocessing steps of the water feature control logic 72. In step 2920,the water feature control logic 72 receives instructions to activate awater feature. In step 2922, the water feature control logic 72retrieves minimum flow rate setpoint data for water feature operationfrom a memory (e.g., gallons per minute). In step 2924, the waterfeature control logic 72 receives operational flow rate data. In step2926, the water feature control logic 72 determines whether the flowrate is above a minimum setpoint. If a positive determination is made instep 2926, then in step 2928, the water feature control logic 72transmits instructions to the water feature actuator valve to move to anopen orientation, and the process ends. If a negative determination ismade in step 2926, then in step 2930, the water feature control logic 72determines whether there are any retries remaining. If a positivedetermination is made in step 2930, then in step 2932, the water featurecontrol logic 72 transmits instructions to the pump to increase flow(e.g., by 5%), and the process reverts to step 2924. If a negativedetermination is made in step 2930, then in step 2934, the water featurecontrol logic 72 transmits an error condition, and the process ends.

FIG. 31B is a flowchart illustrating processing steps of the waterfeature control logic 72. In step 2936, the water feature control logic72 receives instructions to activate a water feature. In step 2938, thewater feature control logic 72 receives operational data from connectedpool devices (e.g., additional water features). In step 2940, the waterfeature control logic 72 determines whether there are additional waterfeatures. If a positive determination is made in step 2940, then in step2942, the water feature control logic 72 determines whether additionalwater features are active. If a positive determination is made in step2942, then in step 2944, the water feature control logic 72 transmitsinstructions to the water feature actuator valve to move to an openorientation, and the process ends. If a negative determination is madein step 2942, then in step 2946, the water feature control logic 72transmits instruction to additional water feature actuator valves tomove to the open orientation, and the process ends. If a negativedetermination is made in step 2940, then the process proceeds to step2944 (as discussed above).

FIG. 31C is a flowchart illustrating processing steps of the waterfeature control logic 72. In step 2948, the water feature control logic72 receives operational data from chemistry automation system. In step2950, the water feature control logic 72 determines if the chemistryautomation system is active. If a negative determination is made in step2950, then the process reverts to step 2948. If a positive determinationis made in step 2950, then in step 2952, the water feature control logic72 transmits instructions to the water feature actuation valve to moveto the open orientation.

FIG. 31D is a flowchart illustrating processing steps of the waterfeature control logic 72. In step 2954, the water feature control logic72 retrieves water temperature setpoint data from memory (e.g., desiredpool temperature). In step 2956, the water feature control logic 72receives operational data from a temperature sensor. In step 2958, thewater feature control logic 72 determines whether the temperature isabove a setpoint. If a positive determination is made in step 2958, thenin step 2960, the water feature control logic 72 transmits instructionsto the chiller to activate. In step 2962, the water feature controllogic 72 transmits instructions to the water feature actuation valve tomove to the open orientation, and the process reverts to step 2956. If anegative determination is made in step 2958, then in step 2964, thewater feature control logic 72 receives operational data from chillerand water feature. In step 2966, the water feature control logic 72determines whether the chiller and water feature are active. If anegative determination is made in step 2966, then the process reverts tostep 2956. If a positive determination is made in step 2966, then instep 2968, the water feature control logic 72 transmits instruction todeactivate the chiller and water feature.

FIG. 31E is a flowchart illustrating processing steps of the waterfeature control logic 72. In step 2970, the water feature control logic72 receives operational data from a motion sensor. In step 2972, thewater feature control logic 72 determines whether the motion sensor istriggered. If a positive determination is made in step 2972, then instep 2980, the water feature control logic 72 transmits instruction tothe water feature valve actuator to move to the open position, and theprocess reverts to step 2970. If a negative determination is made instep 2972, then in step 2974, the water feature control logic 72receives operational data from a water feature valve actuator (e.g.,orientation). In step 2976, the water feature control logic 72determines whether the valve actuator is in the open orientation. If anegative determination is made in step 2976, the process reverts to step2970. If a positive determination is made in step 2976, then in step2978, the water feature control logic 72 transmits instruction to thewater feature valve actuator to move to the closed position, and theprocess reverts to step 2970.

FIG. 31F is a flowchart illustrating processing steps of the waterfeature control logic 72. In step 2982, the water feature control logic72 retrieves ambient noise setpoint data from memory (e.g., maximumambient noise value). In step 2984, the water feature control logic 72receives operational data from an ambient noise sensor. In step 2986,the water feature control logic 72 determines whether the ambient noiseis above a maximum setpoint. If a positive determination is made in step2986, then in step 2988, the water feature control logic 72 transmitsinstruction to water feature valve actuator to decrease throughput(e.g., by 5%), and the process reverts to step 2984. If a negativedetermination is made in step 2986, then in step 2990, the water featurecontrol logic 72 transmits instruction to the water feature valveactuator to increase throughput (e.g., by 5%), and the process revertsto step 2984.

It is noted that the water feature control logic illustrated in FIGS.31A-31F and discussed above could be used to control a pool/spa waterfeature that does not have on-board electronic controls, such as, forexample, a conventional water feature. In such instances, control of thewater feature could be implemented by way of a valve actuator that hasan associated processor and network connectivity, such as the valveactuator discussed herein in connection with FIGS. 28-29I. The valveactuator would be in fluid communication with the water feature, and thecontrol logic discussed in connection with FIGS. 27A-27O would beapplied to control the valve actuator to correspondingly controloperation of the water feature.

FIG. 32 is a diagram 3000 illustrating another embodiment of poolcontrol logic 70. Pool control logic 70 could incorporate a variety oftypes of data and/or data sources in addition to those discussedhereinabove. More specifically, pool control logic 70 could process userinput data 3002, operational data 3004, equipment factory specifications3006, equipment configuration parameters 3008, web data 3010, poolconfiguration parameters 3012, data from related devices 3014, healthmonitoring data 3016, and/or external sensor data 3018.

User input data 3002, could include maximum sun exposure (e.g., UV,intensity, etc.), minimum sun exposure, device operation setpoints,preferred pool/spa area, contact means (e.g., SMS/text), user profiles,zip code, maximum wind speed setpoint, lighting programs, modeselection, override code, and desired actions (e.g., pump speed up, spaon, lights on, etc.).

Operational data 3004 could include GPS coordinates, compass bearing,accelerometer information, image data, IP address, timers, energy usage,and video monitoring data. Equipment factory specifications 3006 couldinclude device maximum wind speed, device operation setpoints, devicepower requirements, and device critical requirements (e.g., plumbingsize, flow rate, clearance, etc.). Equipment configuration parameters3008 could include IP address, GPS coordinates, ZIP code, time and date,lighting programs, etc. Web data 3010 could include location (based onIP address), time & date, sun position, maximum sun exposure,sunrise/sunset data, local lighting code, regional & local weather,forecast data, wind speed and direction, historic weather conditions,live weather maps, local noise ordinance, local traffic conditions,local energy providers, local energy costs, energy rebates anddiscounts, video monitoring data, device/equipment information, etc.Pool configuration parameters 3012 could include, pool surface area,pool geometry, pool cover (e.g., yes, no), etc. Related devices/systems3014 could include smart devices, user interface devices, shadingdevices, skimmers, pumps, water features, fire features, pool covers,lighting systems, heaters or coolers, pool cleaners, sanitizationsystems, chemical dispensing systems, alarm systems, garage doors,interior (home) lights, maintenance system/application, etc. Healthmonitoring data 3016 could include ambient temperature, watertemperature, wind speed, warranty countdown, maintenance schedule, pastequipment issues, service history, etc. External sensor data 3018 couldinclude motion sensors (e.g., bather detection), ambient temperaturesensors, water temperature sensors, ambient noise sensors, light sensors(home/interior), video (home/interior), bar code scanners, etc. While itmay be desirable for external sensors to monitor/provide data on as manysystem parameters as possible (thereby providing greater optimization,automation, and user/operator comfort), it is contemplated that somesystems need not utilize an external sensor to monitor every systemparameter. For example, if a temperature sensor has not been installedin a particular system, the user/operator can provide this informationby first determining the temperature (e.g., by checking a thermometer, athermocouple, a weather forecast, the internet, etc.) and then enteringthe temperature into the system via a user interface.

FIGS. 33A-33AH are flowcharts illustrating additional processing stepsof the pool control logic 70 carried out with respect to relateddevices, systems, and applications. FIG. 33A is a flowchart illustratingprocessing steps of the pool control logic 70 for determining locationsof skimmers and/or the pool/spa to account for wind, sun, or otherexternal factors. In step 3100, the pool control logic 70 transmits aninstruction to the user to traverse the perimeter of the pool whileholding the smart device. In step 3102, the pool control logic 70receives positioning data (e.g., GPS coordinates, compass bearing, etc.)from the smart device as the user traverses the pool. In step 3104, thepool control logic 70 transmits an instruction to the user to place thesmart device at a skimmer location. In step 3106, the pool control logic70 receives positioning data (e.g., GPS coordinates, compass bearing,accelerometer information, etc.) from the smart device placed at theskimmer location. Optionally, to enable higher accuracy in locating theskimmer and/or pool/spa, in step 3108, the pool control logic 70transmits an instruction to the user to photograph the skimmer and poolusing the smart device and in step 3110, the pool control logic 70receives image data from the smart device. In step 3112, the poolcontrol logic 70 determines the location of the skimmer relative to thepool (e.g., using GPS, compass, accelerometer information, and/or imagedata provided by the smart device). In step 3114, pool control logic 70saves the location of the skimmer to memory for later retrieval,described hereinbelow in connection with FIG. 33G. Optionally, in step3116 pool control logic can also determine the location, geometry, andorientation of the pool/spa (e.g., using GPS, compass, accelerometerinformation, and/or image data from the smart device) and in step 3118,pool control logic 70 could save the location, geometry, and orientationof the pool/spa to memory for later retrieval, described hereinbelow inconnection with FIG. 33L.

FIG. 33B is a flowchart illustrating processing steps carried out by thepool control logic 70 for estimating sun exposure and alerting the userto the same. In step 3120, pool control logic 70 transmits aninstruction to the user to photograph the pool/spa using a smart device.In step 3122, pool control logic 70 receives data from the smart device(e.g., GPS, compass, image, date and time data, etc.). In step 3124,pool control logic 70 determines if additional photographs are needed(e.g., multiple photographs could be taken at various times during theday). If a positive determination is made, pool control logic 70proceeds to step 3126, where the logic is delayed for X seconds, whereinX is any suitable integer (e.g., 5, 10, 3600, etc.), and the processthen reverts to step 3120. If a negative determination is made, theprocess proceeds to step 3128, where pool control logic 70 receives dataon sun position (e.g., from sun tracking application or web data) basedon location data from the smart device. In step 3130, pool control logic70 receives current date and time data (e.g., from internal clock or asweb data). In step 3132, pool control logic estimates the current sunexposure (e.g., ultraviolet “UV” index) based on location, image, sunposition, and date and time data. In step 3134, pool control logic 70retrieves a maximum UV exposure setpoint from the memory. The maximum UVexposure setpoint could be provided by the user, or retrieved as webdata provided by a recognized health organization. In step 3136, poolcontrol logic 70 determines if the current sun exposure is above themaximum UV exposure setpoint. If a positive determination is made, theprocess proceeds to step 3138, where pool control logic 70 transmits analert to the user (e.g., “Caution—High UV Index”). If a negativedetermination is made, the process reverts to step 3130.

FIG. 33C is a flowchart illustrating processing steps carried out by thepool control logic 70 for automatically deploying shading devices (e.g.,umbrellas, awnings, shades, etc.) based on estimated sun exposure. Instep 3140, pool control logic 70 transmits an instruction to the user tophotograph the pool/spa using a smart device. In step 3142, pool controllogic 70 receives data from the smart device (e.g., GPS, compass, image,date and time data, etc.). In step 3144, pool control logic 70determines if additional photographs are needed (e.g., multiplephotographs could be taken at various times during the day). If apositive determination is made, pool control logic 70 proceeds to step3146, where the logic is delayed for X seconds, wherein X is anysuitable integer (e.g., 5, 10, 3600, etc.), and the process then revertsto step 3140. If a negative determination is made, the process proceedsto step 3148, where pool control logic 70 receives data on sun position(e.g., from sun tracking application or web data) based on location datafrom the smart device. In step 3150, pool control logic 70 receivescurrent date and time data (e.g., from internal clock or as web data).In step 3152, pool control logic 70 estimates the current sun exposure(e.g., ultraviolet “UV” index, sun intensity, etc.) based on location,image, sun position, and date and time data. In step 3154, pool controllogic 70 retrieves a shading device setpoint from the memory. Theshading device setpoint is a sun exposure value for triggering operationof the shading devices, and could be provided by the user, as aconfiguration parameter, or retrieved as web data. In step 3156, poolcontrol logic 70 determines if the current estimated sun exposure isabove the shading device setpoint. If a positive determination is made,the process proceeds to step 3158, where pool control logic 70 transmitsan instruction to the shading devices to deploy and then reverts to step3150. If a negative determination is made, the process proceeds to step3160, where pool control logic 70 determines if the shading devices aredeployed. If a negative determination is made, the process reverts tostep 3150. If a positive determination is made, the process proceeds tostep 3162, where pool control logic 70 transmits an instruction to theshading devices to retract and then reverts to step 3150.

FIG. 33D is a flowchart illustrating processing steps carried out by thepool control logic 70 for notifying a user of sun conditions at apreferred area of the pool (e.g., lounging area). In step 3164, poolcontrol logic 70 transmits an instruction to the user to photograph thepool/spa using a smart device. In step 3166, pool control logic 70receives data from the smart device (e.g., GPS, compass, image, date andtime data, etc.). In step 3168, pool control logic 70 determines ifadditional photographs are needed (e.g., multiple photographs could betaken at various times during the day). If a positive determination ismade, pool control logic 70 proceeds to step 3170, where the logic isdelayed for X seconds, wherein X is any suitable integer (e.g., 5, 10,3600, etc.), and the process then reverts to step 3164. If a negativedetermination is made, the process proceeds to step 3172, where poolcontrol logic 70 receives data on sun position (e.g., from sun trackingapplication or web data) based on location data from the smart device.In step 3174, pool control logic 70 retrieves location data of apreferred area of the pool from the memory. The location data of thepreferred area of the pool can be obtained by way of a similar process,as described herein, in connection with FIG. 33A (e.g., process fordetermining skimmer location). In some embodiments, multiple users couldspecify one or more preferred areas of the pool/spa area. In step 3176,the pool control logic 70 receives current date and time data (e.g.,from internal clock, or as web data). In step 3178, pool control logic70 estimates the current sun exposure at the preferred area (e.g., usingGPS, compass, image, and sun positioning data). In step 3180, poolcontrol logic 70 retrieves a minimum sun exposure setpoint (e.g.,minimum UV index or sun intensity) from the memory. In step 3182, poolcontrol logic 70 determines if the current estimated sun exposure isabove the minimum sun exposure setpoint. If a negative determination ismade, the process reverts to step 3176. If a positive determination ismade, the process proceeds to step 3184, where pool control logic 70transmits an alert to the user (e.g., “Lounge Area is Sunny”). In someembodiments, multiple users can create profiles containing theirpreferred areas of the pool and a means for receiving alerts. Forexample, a user could create a profile with two preferred areas of thepool, name the preferred areas of the pool (e.g., “lounge area,” “spaarea,” etc.) and pool control logic 70 could sent the user a SMS/textmessage when either of the preferred areas are sunny. It is also notedthat pool control logic 70 could collect historical usage data for eachuser and save the data (e.g., to the memory) to individual user profilesfor later retrieval and use.

FIG. 33E is a flowchart illustrating processing steps carried out by thepool control logic 70 for planning the optimal placement of a pool/spaprior to installation. In step 3186, pool control logic 70 transmits aninstruction to the user to photograph a desired pool/spa location usinga smart device. In step 3188, pool control logic 70 receives desiredlocation data from the smart device (e.g., GPS coordinates, compassbearing, image data, etc.). In step 3190, pool control logic 70 receivesdata on sun position (e.g., data from sun tracking application or as webdata), based on the location data from the smart device. In step 3192,pool control logic 70 determines the optimal location and orientation ofthe pool/spa for ideal sun exposure (e.g., using GPS, compass, and imagedata from smart device). Optionally, in step 3194, pool control logic 70receives data on historic weather conditions (e.g., prevailing winds,speed, direction, etc.) based on the location data from the smart deviceand in step 3196, pool control logic 70 determines the optimal locationof a skimmer (e.g., based on historic wind conditions/direction). Instep 3197, pool control logic 70 transmits the optimized location andorientation data to the user (e.g., in the form of architecturaldrawings, renderings, etc.). In step 3198, pool control logic 70 savesthe optimized location data to the memory for later retrieval.

FIG. 33F is a flowchart illustrating processing steps carried out by thepool control logic 70 for determining current weather conditions. Instep 3200, pool control logic 70 receives an IP address from a smartdevice on a local network. In step 3202, pool control logic 70 receiveslocation data based on the IP address (e.g., web data/geolocationprovider). In step 3204, pool control logic 70 receives web data oncurrent weather conditions (based on ZIP code, location/address, or GPScoordinates, discussed hereinbelow). Current weather conditions caninclude, for example, temperature, precipitation, wind speed, winddirection, etc. Web data on current weather conditions could alsoinclude live 3rd party data, for example, live weather maps ofprecipitation and cloud cover. In step 3206, pool control logic 70 savesthe current weather conditions to the memory for later retrieval. Instep 3208, pool control logic 70 is delayed by X seconds, wherein X isany suitable integer (e.g., 5, 10, 3600, etc.) and then the processreturns to step 3200. Optionally, in step 3210, pool control logic 70could transmit an instruction to the user to enter a ZIP code via a userinterface device and in step 3212, pool control logic 70 could receivethe ZIP code data from the user interface device. In step 3214, poolcontrol logic 70 could also/alternatively receive GPS data from a smartdevice on the local network (e.g., smart phone connected to home WiFi.

FIG. 33G is a flowchart illustrating processing steps carried out by thepool control logic 70 for selecting a skimmer based on current weatherconditions. In step 3216, pool control logic 70 retrieves currentweather conditions (e.g., wind direction) data from the memory. Thecurrent weather conditions can be obtained by way of the processdescribed herein, in connection with FIG. 33F. In step 3218, poolcontrol logic 70 retrieves skimmer location data from the memory. Theskimmer location data can be obtained by way of the process describedherein, in connection with FIG. 33A. In step 3220, pool control logic 70determines if there are multiple skimmers. If a negative determinationis made, the process ends. If a positive determination is made, theprocess proceeds to step 3222, where pool control logic 70 determinesthe most downwind skimmer (using the location data). In step 3224, poolcontrol logic 70 transmits an instruction to the most downwind skimmerto activate. Pool control logic 70 could also sent an instruction to allother skimmers to deactivate. The process then reverts to step 3216. Insome embodiments, pool control logic 70 could transmit an instruction toincrease the suction of an upwind skimmer to compensate for the windconditions or pool control logic 70 could transmit an instruction todecrease the suction of a downwind skimmer to compensate for theincreased debris flowing therethrough due to the wind condition. Infurther embodiments, pool control logic 70 could transmit an instructionto alter the skimmer suction relative to main drain suction.

FIG. 33H is a flowchart illustrating processing steps carried out by thepool control logic 70 for automated operation of pool devices based oncurrent weather conditions. In step 3226, pool control logic 70retrieves current weather conditions (e.g., wind speed, up-wind debrissource direction) data from the memory. The current weather conditionscan be obtained by way of the process described herein, in connectionwith FIG. 33F. In step 3228, pool control logic 70 retrieves maximumwind speed setpoint data from memory. In step 3230, pool control logic70 determines if the current wind speed is above the maximum wind speedsetpoint. If a positive determination is made, the process proceeds tostep 3238, where pool control logic 70 transmits an instruction to thepump to increase circulation. Optionally, in step 3240, pool controllogic 70 could transmit an instruction to deactivate or reduce waterfeatures (e.g., fountains). Optionally, in step 3242, pool control logic70 could transmit an instruction to deactivate or reduce fire features.Optionally, in step 3224, pool control logic 70 could transmit aninstruction to retract shading devices (e.g., umbrellas, awnings,shades, etc.). Alternatively, in the event of pool devices that are notcapable of being automated/receiving control signals/are not connectedto the system 10, in step 3246, pool control logic 70 could transmit amessage to the user (e.g., “Caution—High Winds”). The process thenreverts to step 3226. If a negative determination is made in step 3230,the process proceeds to step 3232, where pool control logic 70determines if the operation of any pool devices has been altered due tothe weather condition (e.g., high winds). If a negative determination ismade, the process reverts to step 3226. If a positive determination ismade, the process proceeds to step 3234, where pool control logic 70transmits an instruction to revert to regular operation of the pooldevice(s). Optionally, in step 3236, pool control logic 70 couldtransmit a message to the user (e.g., “Wind Has Subsided”). The processthen reverts to step 3226. The above process can also be used toconfigure the skimmer locations with respect to the up-wind debrisdirection.

FIG. 33I is a flowchart illustrating processing steps carried out by thepool control logic 70 for automated operation of a pool cover based oncurrent weather conditions. In step 3248, pool control logic 70retrieves current weather conditions (e.g., wind speed) data from thememory. The current weather conditions can be obtained by way of theprocess described herein, in connection with FIG. 33F. In step 3250,pool control logic 70 retrieves maximum wind speed setpoint data frommemory. In step 3252, pool control logic 70 determines if the currentwind speed is above the maximum wind speed setpoint. If a positivedetermination is made, the process proceeds to step 3260, where poolcontrol logic 70 receives operational data from a pool motion sensor(e.g., bather detection, as described hereinabove). In step 3262, poolcontrol logic 70 determines if an active bather has been detected. If apositive determination is made, the process could optionally proceed tostep 3264, where pool control logic 70 transmits an instruction to thelighting system to display a weather alert program (e.g., flashing whitelights) and the process then reverts to step 3248. If a negativedetermination is made, the process proceeds to step 3266, where poolcontrol logic 70 transmits an instruction to close the pool cover (e.g.,90% closed, allowing for safety egress). If a negative determination ismade in step 3252, the process proceeds to step 3254, where pool controllogic 70 determines if the operation of any pool devices (e.g., poolcover, lighting system) has been altered due to the weather condition(e.g., high winds). If a negative determination is made, the processreverts to step 3248. If a positive determination is made, the processproceeds to step 3256, where pool control logic 70 transmits aninstruction to revert to regular operation of the pool device(s).Optionally, in step 3258, pool control logic 70 could transmit a messageto the user (e.g., “Wind Has Subsided”). The process then reverts tostep 3248.

FIG. 33J is a flowchart illustrating processing steps carried out by thepool control logic 70 for compensating heat loss due to current weatherconditions. In step 3268, pool control logic 70 retrieves currentweather conditions (e.g., wind speed) data from the memory. The currentweather conditions can be obtained by way of the process describedherein, in connection with FIG. 33F. In step 3270, pool control logic 70retrieves maximum wind speed setpoint data from memory. In step 3272,pool control logic 70 determines if the current wind speed is above themaximum wind speed setpoint. If a positive determination is made, theprocess proceeds to step 3280, where pool control logic 70 retrievespool configuration parameters from memory (e.g., pool surface area,geometry, volume, etc.). In step 3282, pool control logic 70 receivesdata on the ambient temperature (e.g., from sensor or web data). In step3284, pool control logic 70 receives operational data on watertemperature (e.g., from sensor). In step 3286, pool control logic 70determines heat loss due to the current weather condition (e.g.,prevailing winds). In step 3288, pool control logic 70 transmits aninstruction to the heater to increase output (e.g., compensating for theheat loss) and the process reverts to step 3268. If a negativedetermination is made in step 3272, the process proceeds to step 3274,where pool control logic 70 determines if the operation of any pooldevices (e.g., heater) has been altered due to the weather condition(e.g., high winds). If a negative determination is made, the processreverts to step 3268. If a positive determination is made, the processproceeds to step 3276, where pool control logic 70 transmits aninstruction to revert to regular operation of the pool device(s).Optionally, in step 3278, pool control logic 70 could transmit a messageto the user (e.g., “Wind Has Subsided”). The process then reverts tostep 3268.

FIG. 33K is a flowchart illustrating processing steps carried out by thepool control logic 70 for determining if a freeze risk exists and if so,taking appropriate action. In step 3290, pool control logic 70 retrievescurrent weather conditions (e.g., wind speed) data from the memory. Thecurrent weather conditions can be obtained by way of the processdescribed herein, in connection with FIG. 33F. In step 3292, poolcontrol logic 70 retrieves maximum wind speed setpoint data from memory.In step 3294, pool control logic 70 determines if the current wind speedis above the maximum wind speed setpoint. If a positive determination ismade, the process proceeds to step 3302, where pool control logic 70receives data on the ambient temperature (e.g., from sensor or webdata). In step 3304, pool control logic 70 determines heat loss due tothe current weather condition (e.g., prevailing winds). Heat loss due tothe weather conditions (e.g., wind) can be obtained by way of theprocess described herein, in connection with FIG. 33J. In step 3306,pool control logic 70 determines if a freeze risk exists (e.g., due toambient temperature, heat loss, wind chill, etc.). If a negativedetermination is made, the process reverts to step 3290. If a positivedetermination is made, the process proceeds to step 3308, where poolcontrol logic 70 transmits an instruction to the pump to increase speed.Optionally, in step 3310, pool control logic 70 could transmit aninstruction to the heater to increase output, in step 3312, pool controllogic 70 could transmit an instruction to the lighting system to displaya freeze risk program (e.g., flashing blue lights), and in step 3314,pool control logic 70 could transmit a message to the user (e.g.,“Freeze Risk”). The process then reverts to step 3290. If a negativedetermination is made in step 3294, the process proceeds to step 3296,where pool control logic 70 determines if the operation of any pooldevices (e.g., pump, heater, lighting system, etc.) has been altered dueto the weather condition (e.g., high winds). If a negative determinationis made, the process reverts to step 3290. If a positive determinationis made, the process proceeds to step 3298, where pool control logic 70transmits an instruction to revert to regular operation of the pooldevice(s). Optionally, in step 3300, pool control logic 70 couldtransmit a message to the user (e.g., “Wind Has Subsided”). The processthen reverts to step 3290.

FIG. 33L is a flowchart illustrating processing steps carried out by thepool control logic 70 for cleaning a pool/spa in response to a weathercondition (e.g., high winds). In step 3316, pool control logic 70retrieves current weather conditions (e.g., wind speed, direction) datafrom the memory. The current weather conditions can be obtained by wayof the process described herein, in connection with FIG. 33F. In step3318, pool control logic 70 retrieves maximum wind speed setpoint datafrom memory. In step 3320, pool control logic 70 determines if thecurrent wind speed is above the maximum wind speed setpoint. If apositive determination is made, the process proceeds to step 3328, wherepool control logic 70 retrieves pool geometry and orientation data fromthe memory. The pool geometry and orientation data can be obtained byway of the process described herein, in connection with FIG. 33A. Instep 3330, pool control logic 70 determines the downwind area of thepool/spa. In step 3332, pool control logic 70 transmits an instructionto a pool cleaner to traverse the downwind area of the pool and theprocess then reverts to step 3316. If a negative determination is madein step 3320, the process proceeds to step 3322, where pool controllogic 70 determines if the operation of any pool devices (e.g., poolcleaner) has been altered due to the weather condition (e.g., highwinds). If a negative determination is made, the process reverts to step3316. If a positive determination is made, the process proceeds to step3324, where pool control logic 70 transmits an instruction to revert toregular operation of the pool device(s). Optionally, in step 3326, poolcontrol logic 70 could transmit a message to the user (e.g., “Wind HasSubsided”). The process then reverts to step 3316.

FIG. 33M is a flowchart illustrating processing steps carried out by thepool control logic 70 for sanitizing a pool/spa in response to a weathercondition (e.g., high winds). In step 3334, pool control logic 70retrieves current weather conditions (e.g., wind speed) data from thememory. The current weather conditions can be obtained by way of theprocess described herein, in connection with FIG. 33F. In step 3336,pool control logic 70 retrieves maximum wind speed setpoint data frommemory. In step 3338, pool control logic 70 determines if the currentwind speed is above the maximum wind speed setpoint. If a positivedetermination is made, the process proceeds to step 3346, where poolcontrol logic 70 retrieves pool configuration parameters (e.g., poolsurface area, geometry, volume, etc.) from the memory. In step 3348,pool control logic 70 determines the increased sanitization needs of thepool due to the weather condition (e.g., high winds causing increaseddebris in pool). In step 3350, pool control logic 70 transmits aninstruction to a sanitization system to increase operation by thedetermined amount and the process then reverts to step 3334. If anegative determination is made in step 3338, the process proceeds tostep 3340, where pool control logic 70 determines if the operation ofany pool devices (e.g., sanitization system) has been altered due to theweather condition (e.g., high winds). If a negative determination ismade, the process reverts to step 3334. If a positive determination ismade, the process proceeds to step 3342, where pool control logic 70transmits an instruction to revert to regular operation of the pooldevice(s). Optionally, in step 3344, pool control logic 70 couldtransmit a message to the user (e.g., “Wind Has Subsided”). The processthen reverts to step 3334.

FIG. 33N is a flowchart illustrating processing steps carried out by thepool control logic 70 for operating pool devices based on timerstriggered by sunrise/sunset times. In step 3352, pool control logic 70receives an IP address from a smart device on a local network. In step3354, pool control logic 70 receives location data based on the IPaddress (e.g., web data/geolocation provider). In step 3356, poolcontrol logic 70 receives web data on sunrise/sunset times (based on ZIPcode, location/address, or GPS coordinates, discussed hereinbelow). Instep 3358, pool control logic 70 receives time and date data (e.g., viaan internal clock or as web data). In step 3360, pool control logic 70determines if the current time is the sunrise or sunset time. If anegative determination is made, the process reverts to step 3358. If apositive determination is made, the process proceeds to step 3362, wherepool control logic 70 begins a timer for X seconds, wherein X is anysuitable integer (e.g., 5, 10, 3600, etc.). In step 3364, pool controllogic 70 transmits an instruction to a pool device to activate/alteroperation. For example, pool control logic 70 could transmit aninstruction to the pump 14 a to increase speed upon sunrise, for aspecified duration of time, or pool control logic 70 could transmit aninstruction to display a countdown to sundown. In step 3366, poolcontrol logic 70 determines if the timer has reached zero (0) seconds.If a negative determination is made, the process repeats step 3366. If apositive determination is made, the process proceeds to step 3368, wherepool control logic 70 transmits an instruction to the pool device todeactivate/resume normal operation. The process then reverts to step3352. Optionally, in step 3370, pool control logic 70 could transmit aninstruction to the user to enter a ZIP code via a user interface deviceand in step 3372, pool control logic 70 could receive the ZIP code datafrom the user interface device and then the process could proceed tostep 3356. In step 3374, pool control logic 70 could also/alternativelyreceive GPS data from a smart device on the local network (e.g., smartphone connected to home WiFi) and then the process could proceed to step3356.

FIG. 33O is a flowchart illustrating processing steps carried out by thepool control logic 70 for operating pool devices based on sunrise/sunsettimes (e.g., activate at sunrise, deactivate at sunset). For example,the pool control logic 70 could transmit an instruction to the pump 14 ato increase speed upon sunrise and decrease speed upon sunset, the poolcontrol logic 70 could transmit an instruction to increase thefiltration rate or hours based on sunlight hours, or the pool controllogic 70 could transmit an instruction to the lighting system 14 h toactivate upon sundown and deactivate upon sunrise. In step 3376, poolcontrol logic 70 receives an IP address from a smart device on a localnetwork. In step 3378, pool control logic 70 receives location databased on the IP address (e.g., web data/geolocation provider). In step3380, pool control logic 70 receives web data on sunrise/sunset times(based on ZIP code, location/address, or GPS coordinates, discussedhereinbelow). In step 3382, pool control logic 70 receives time and datedata (e.g., via an internal clock or as web data). In step 3384, poolcontrol logic 70 determines if the current time is the sunrise or sunsettime. If a negative determination is made, the process reverts to step3382. If a positive determination is made, the process proceeds to step3386, where pool control logic 70 transmits an instruction to a pooldevice to activate/alter operation. In step 3388, pool control logic 70receives time and date data (e.g., via an internal clock or as webdata). In step 3390, pool control logic 70 determines if the currenttime is the sunrise or sunset time. If a negative determination is made,the process reverts to step 3388. If a positive determination is made,the process proceeds to step 3392, where pool control logic 70 transmitsan instruction to the pool device to deactivate/resume normal operation.The process then reverts to step 3376. Optionally, in step 3394, poolcontrol logic 70 could transmit an instruction to the user to enter aZIP code via a user interface device and in step 3396, pool controllogic 70 could receive the ZIP code data from the user interface deviceand then the process could proceed to step 3380. In step 3398, poolcontrol logic 70 could also/alternatively receive GPS data from a smartdevice on the local network (e.g., smart phone connected to home WiFi)and then the process could proceed to step 3380.

FIG. 33P is a flowchart illustrating processing steps carried out by thepool control logic 70 for operating pool devices at different setpointsduring the daytime and evening. For example, pool control logic 70 couldoperate a sanitization system at a first setpoint during the daytime andoperate at a second setpoint during the evening. In step 3400, poolcontrol logic 70 receives web data on sunrise/sunset times. The web dataon sunrise/sunset times can be obtained by way of the process describedherein, in connection with FIG. 33N. In step 3402, pool control logic 70receives time and date data (e.g., via an internal clock or as webdata). In step 3404, pool control logic 70 determines if the currenttime is the sunrise or sunset time. If a negative determination is made,the process reverts to step 3402. If a positive determination is made,the process proceeds to step 3406, where pool control logic 70 retrievessetpoint data for a daylight sanitization rate from the memory. In step3408, pool control logic 70 transmits an instruction to a sanitizationsystem to operate at the daylight sanitization rate. In step 3410, poolcontrol logic 70 receives time and date data (e.g., via an internalclock or as web data). In step 3412, pool control logic 70 determines ifthe current time is the sunrise or sunset time. If a negativedetermination is made, the process reverts to step 3410. If a positivedetermination is made, the process proceeds to step 3414, where poolcontrol logic 70 retrieves setpoint data on an evening sanitization ratefrom the memory. In step 3416, pool control logic 70 transmits aninstruction to the sanitization system to operate at the eveningsanitization rate. The process then reverts to step 3400.

FIG. 33Q is a flowchart illustrating processing steps carried out by thepool control logic 70 for operating a sanitization system based on thecurrent weather conditions. In step 3418, pool control logic 70retrieves current weather conditions data from the memory. Currentweather conditions data can be obtained by way of the process describedherein, in connection with FIG. 33F. Current weather conditions couldinclude air temperature, humidity, heat/cold index, wind-chill, etc.Optionally, in step 3426, pool control logic 70 could receive watertemperature operational data from a sensor. In step 3420, pool controllogic 70 retrieves pool configuration parameters from the memory. Instep 3422, pool control logic 70 determines the sanitization rate basedon the current weather conditions. While the sanitization rate could bedetermined based on the current weather conditions, other chemicaldispensing and/or production rates could be determined as well.Optionally, in step 3428, pool control logic 70 could determine thesanitization rate based on the water temperature. In step 3424, poolcontrol logic 70 transmits an instruction to the sanitization system tooperate at the determined rate. The process then reverts to step 3418.

FIG. 33R is a flowchart illustrating processing steps carried out by thepool control logic 70 for operating the system 10 based on maximumambient noise. In step 3430, pool control logic 70 receives web data onthe local noise ordinance (e.g., maximum decibels at specified timesallowed by code). The web data on the local noise ordinance can beobtained by way of a similar process as described herein, in connectionwith FIG. 33N (e.g., by determining the location of the system 10 andthen receiving web data based on that location). In step 3432, poolcontrol logic 70 receives time and date data (e.g., internal clock orweb data). In step 3434, pool control logic 70 receives operational datafrom an ambient noise sensor. In step 3436 pool control logic 70determines if the current ambient noise is above the maximum ambientnoise (set by ordinance) at the current time. If a negativedetermination is made, the process reverts to step 3432. If a positivedetermination is made, the process proceeds to step 3438, where poolcontrol logic 70 transmits an instruction to a pool device (e.g., waterfeature, pump, heater, blower, etc.) to reduce operation by X %, whereinX is any suitable integer between one (1) and one hundred (100) (e.g.,1, 2, 5, 10, etc.). The process then reverts to step 3432. The aboveprocess can apply based on geo-positioning data.

FIG. 33S is a flowchart illustrating processing steps carried out by thepool control logic 70 for compensating for ambient noise. In step 3440,pool control logic 70 receives web data (e.g., Google maps) on localtraffic conditions (e.g., number/density/speed of vehicles surroundingcurrent location). The web data on the local traffic conditions can beobtained by way of a similar process as described herein, in connectionwith FIG. 33N (e.g., by determining the location of the system 10 andthen receiving web data based on that location). In step 3442, poolcontrol logic 70 determines/estimates the noise intensity of the localtraffic. Optionally, in step 3452, pool control logic 70 could receiveoperational data from an ambient noise sensor that is positioned tosense the noise produced by the local traffic. In step 3444, poolcontrol logic 70 determines the intensity of white noise needed tocompensate for the noise intensity of the local traffic. In step 3446,pool control logic 70 transmits an instruction to a pool device (e.g.,water feature or other device capable of producing white noise) toincrease output by X %, wherein X is any suitable integer (e.g., 5, 10,50, etc.). In step 3448, pool control logic 70 receives operational datafrom an ambient noise sensor (e.g., white noise sensor). In step 3450,pool control logic 70 determines if the white noise being produced issufficient to compensate for the noise being produced by the localtraffic. If a negative determination is made, the process reverts tostep 3446. If a positive determination is made, the process reverts tostep 3440.

FIG. 33T is a flowchart illustrating processing steps carried out by thepool control logic 70 for determining the local cost of energy. In step3454, pool control logic 70 receives an IP address from a smart deviceon a local network. In step 3456, pool control logic 70 receiveslocation data based on the IP address (e.g., web data/geolocationprovider). In step 3458, pool control logic 70 receives web data (e.g.,a listing) of local energy providers (based on ZIP code,location/address, or GPS coordinates, discussed hereinbelow). In step3460, pool control logic 70 transmits an instruction to the user toselect their local energy provider (e.g., from a list of local energyproviders). The local energy providers/vendors can also be determined byway of the user entering, scanning, or selecting the vendor from adrop-down menu. In step 3462, pool control logic 70 receives web data onlocal energy cost (e.g., as provided by the selected energy vendor). Thelocal energy costs could include both current energy costs and/orforecasted energy costs. Optionally, in step 3474, pool control logic 70could transmit a rebate/discount message to the user (e.g., governmentand/or power company energy and/or energy-based equipment rebates anddiscounts). In step 3464, pool control logic 70 saves the local energycost data to the memory for later retrieval. In step 3466, pool controllogic 70 is delayed for X seconds, wherein X is any suitable integer(e.g., 5, 10, 3600, etc.) and the process then reverts to step 3454.Optionally, in step 3468, pool control logic 70 could transmit aninstruction to the user to enter a ZIP code via a user interface deviceand in step 3470, pool control logic 70 could receive the ZIP code datafrom the user interface device and then the process could proceed tostep 3458. In step 3472, pool control logic 70 could also/alternativelyreceive GPS data from a smart device on the local network (e.g., smartphone connected to home WiFi) and then the process could proceed to step3458.

FIG. 33U is a flowchart illustrating processing steps carried out by thepool control logic 70 for informing the user of the cost of a desiredaction. In step 3476, pool control logic 70 retrieves local energy costdata from the memory. The web data on the local energy costs can beobtained by way of the process as described herein, in connection withFIG. 33T (e.g., by determining the location of the system 10 and thenreceiving web data based on that location). In step 3478, pool controllogic 70 receives user input on a desired action (e.g., pump speed up,spa on, lights on, etc.). The desired action could also include bringinga pool feature to a desired state, over time (e.g., bringing the poolwater temperature to 80 degrees Fahrenheit by Friday at 5:00 pm andmaintaining the temperature for a specified duration of time). In step3480, pool control logic 70 determines the predicted cost of the desiredaction. In step 3482, pool control logic 70 transmits a message to theuser (e.g., cost per minute, hour, day, etc.).

FIG. 33V is a flowchart illustrating processing steps carried out by thepool control logic 70 for optimizing the operation of pool devices basedon energy cost (peak and off-peak hours). In step 3484, pool controllogic 70 retrieves local energy cost data from the memory (e.g.,peak/off-peak cost of electricity). The web data on the local energycosts can be obtained by way of the process as described herein, inconnection with FIG. 33T (e.g., by determining the location of thesystem 10 and then receiving web data based on that location). In step3486, pool control logic 70 receives user input on pool device operatingschedules (e.g., filtering, pool cleaning, etc.). In step 3488, poolcontrol logic 70 determines an optimized schedule for the lowest energycost. For example, normal filtering and pool cleaner operation cyclescould be adjusted based on the lowest cost of energy during off-peakhours. In step 3490, pool control logic 70 transmits an instruction tothe pool devices to operate according to the optimized schedule. Inaddition, energy-based commands could be capable of auto-overridingother system commands, and vice-versa, based on weather/environmentaldemands (e.g., optimized energy settings vs. weather vs. basic poolrequirements—clean, sanitized, etc.). The process then returns to step3484.

FIG. 33W is a flowchart illustrating processing steps carried out by thepool control logic 70 for warning the user of pool device operationduring peak energy cost hours. In step 3492, pool control logic 70retrieves local energy cost data from the memory (e.g., peak/off-peakcost of electricity). The web data on the local energy costs can beobtained by way of the process as described herein, in connection withFIG. 33T (e.g., by determining the location of the system 10 and thenreceiving web data based on that location). In step 3494, pool controllogic 70 retrieves user input on a desired action (e.g., pump speed up,spa on, lights on, etc.). In step 3496, pool control logic 70 receivestime and date data (e.g., internal clock, or as web data). In step 3498,pool control logic 70 determines whether the current time corresponds topeak hours for electricity costs. If a positive determination is made,the process proceeds to step 3500, where pool control logic 70 transmitsa message to the user (e.g., “Warning—Peak hours. Do you wish toproceed?”). In step 3502, pool control logic 70 receives user input(e.g., yes/no). In step 3504, pool control logic 70 determines if theuser wishes to proceed with the desired action. If a negativedetermination is made, the process ends. If a positive determination ismade, the process proceeds to step 3506, where pool control logic 70transmits an instruction to the pool device to perform the desiredaction (e.g., pump speed up, spa on, lights on, etc.) and the processends. If a negative determination is made at step 3498, the processproceeds to step 3506.

FIG. 33X is a flowchart illustrating processing steps carried out by thepool control logic 70 for preventing use of the system 10 during peakelectrical cost hours. In step 3508, pool control logic 70 retrieveslocal energy cost data from the memory (e.g., peak/off-peak cost ofelectricity). The web data on the local energy costs can be obtained byway of the process as described herein, in connection with FIG. 33T(e.g., by determining the location of the system 10 and then receivingweb data based on that location). In step 3510, pool control logic 70retrieves user input on a desired action (e.g., pump speed up, spa on,lights on, etc.). In step 3512, pool control logic 70 receives time anddate data (e.g., internal clock, or as web data). In step 3514, poolcontrol logic 70 determines if it is currently peak hours forelectricity costs. If a positive determination is made, the processproceeds to step 3516, where pool control logic 70 transmits a messageto the user (e.g., “Warning—Peak hours. Please enter Priority Useroverride code.”). In step 3518, pool control logic 70 receives userinput (e.g., Priority User override code). In step 3520, pool controllogic 70 determines if the Priority User override code is correct. If apositive determination is made, the process proceeds to step 3522, wherepool control logic 70 transmits an instruction to the pool device toperform the desired action (e.g., pump speed up, spa on, lights on,etc.) and the process ends. If a negative determination is made, theprocess proceeds to step 3524, where pool control logic 70 determines ifthere are retries remaining (e.g., remaining attempts to enter thecorrect code). If a negative determination is made at step 3524, theprocess ends. If a positive determination is made at step 3524, theprocess reverts to step 3518. If a negative determination is made atstep 3514, the process proceeds to step 3522.

FIG. 33Y is a flowchart illustrating processing steps carried out by thepool control logic 70 for deactivating high-poweredsystems/devices/components to reduce electrical costs. In step 3526,pool control logic 70 receives an instruction to activate “Energy SaveMode.” In step 3528, pool control logic 70 identifies high-poweredlighting devices in the lighting system. The high-powered lightingdevices could be identified at the time of installation (e.g., manuallyor scanned) or by pool control logic 70 (e.g., macro or sensed). In step3530, pool control logic 70 transmits an instruction to the high-poweredlighting to deactivate (e.g., deactivate non-LED lighting devices).While the “Energy Save Mode” has been described herein in connectionwith lighting devices, “Energy Save Mode” could also identify anddeactivate any device using an amount power that exceeds a predefinedsetpoint. Additionally, pool control logic 70 could transmit aninstruction to a device to reduce operation until the device is onlyconsuming power at low, predefined setpoint. In addition to the examplesdiscussed hereinabove, in connection with FIGS. 33T-33Y, web data (e.g.,3rd party Web advised conditions, energy cost, weather, environmental,etc.) could be used to prompt/trigger pool control logic 70 (e.g., pumpcontrol, valve control, lighting control, cleaner control, etc.) toadjust speed, flow, position, mode, performance, behavior, etc. of anypiece of pool equipment or feature, or any other device in communicationwith the system 10, to reduce energy costs, or to return to a previousstate.

The system of the present disclosure also provides systems forleveraging synergies between the pool control logic 70 and otherapplications (e.g., connecting to and/or communicating with a commonapplication and sharing a user interface, advising the user of variousalerts/conditions, controlling pool functions and/or devices, reactionor synchronization to/with external devices connected through the cloud,etc.). For example, FIG. 33Z is a flowchart illustrating processingsteps carried out by the pool control logic 70 for alerting the user topool/spa area ingress and egress. In step 3532, pool control logic 70receives live or historical video of the pool/yard (e.g., from 3rd partyapplication/source). In step 3534, pool control logic 70 analyzes thevideo of the pool/yard for occupant ingress/egress. In step 3536, poolcontrol logic 70 determines if there has been an ingress/egress (e.g.,unwanted intrusion, monitoring the whereabouts of children, etc.) inconnection with a body of water. If a negative determination is made,the process reverts to step 3532. If a positive determination is made,the process proceeds to step 3538, where pool control logic 70 transmitsa message to the user (e.g., “Alert—pool ingress/egress”). The processthen reverts to step 3532. Optionally, in step 3540, pool control logic70 could transmit instructions to an alarm system to activate (e.g., 3rdparty alarm system/security provider) and then revert to step 3532. Thepool control logic 70 could also communicate with 3rd party securitysystems (e.g., front-door systems with video, audio, door unlock/lock,etc.) and in-home lighting systems and receive data from 3rd party livesatellite image/video feeds.

FIG. 33AA is a flowchart illustrating processing steps carried out bythe pool control logic 70 for leveraging video data from a 3rd party tomaintain the cleanliness of a pool/spa. In step 3542, pool control logic70 receives live or historical video of the pool/yard (e.g., from 3rdparty application/source). In step 3544, pool control logic 70 analyzesthe video of the pool/yard for debris (e.g., presence of debris in pool,debris movement in pool, debris concentration in pool, etc.). In step3546, pool control logic 70 determines if there is debris in the pool.If a negative determination is made, the process reverts to step 3542.If a positive determination is made, the process proceeds to step 3548,where pool control logic 70 transmits an instruction to a pool device toactivate (e.g., cleaner, skimmer, filter, etc.). The process thenreverts to step 3542. Optionally, in step 3550, pool control logic 70could transmit an instruction to a pool cleaner to traverse the area ofthe pool having the highest concentration of debris, and then revert tostep 3542.

FIG. 33AB is a flowchart illustrating processing steps carried out bythe pool control logic 70 for operation of the lighting system 14 hbased on operational data from an external source. In step 3552, poolcontrol logic 70 receives operational data from an external source(e.g., a signal that the garage door is opening). Optionally, in step3562, pool control logic 70 could receive operational data from anotherexternal device (e.g., a signal that the indoor lighting devices areturned on). In step 3554, pool control logic 70 receives web data onsunrise/sunset times (e.g., based on ZIP code, address, or GPScoordinates). The web data on the sunrise/sunset times can be obtainedby way of the process as described herein, in connection with FIG. 33N(e.g., by determining the location of the system 10 and then receivingweb data based on that location). In step 3556, pool control logic 70receives current time and date data (e.g., from an internal clock, or asweb data). In step 3558, pool control logic 70 determines if the currenttime is after sunset. If a negative determination is made, the processreverts to step 3552. If a positive determination is made, the processproceeds to step 3560, where pool control logic 70 transmits aninstruction to the lighting system to activate (e.g., a selection, poolzone, yard zone, or all outdoor lights). The process then reverts tostep 3552. In addition to the foregoing, pool control logic 70 couldalso synchronize/trigger the outdoor/pool lighting system to an “all on”command for the indoor lights. This is particularly useful for emergencylighting scenarios. For example, the indoor lights could receive an “allon” command in response to a triggered smoke detector and pool controllogic 70 could transmit an instruction to the lighting system 14 h toactivate all lights at maximum intensity. Pool control logic 70 coulddetermine that an “all on” command has been sent to the indoor lightsdirectly, by receiving the same command (e.g., direct communication ornetwork communication between the indoor lights and/or smoke detectorand pool control logic 70), or indirectly, by monitoring the indoorlighting and/or smoke detector (e.g., light sensors or video monitoringfor the indoor lighting, noise sensor for the smoke detector, etc.).

FIG. 33AC is a flowchart illustrating processing steps carried out bythe pool control logic 70 for matching or synchronizing the operation ofthe lighting system 14 h to interior mood lighting in a home. In step3564, pool control logic 70 receives operational data from an externaldevice (e.g., mood/color lighting selected in a home). Alternatively,pool control logic 70 could receive operational data from a sensorpositioned for sensing the lighting conditions (e.g., intensity orcolor) in the home, or pool control logic 70 could receive operationaldata from a third party application or video feed showing the lightingconditions in the house. In step 3566, pool control logic 70 determinesthe RGB color spectrum of the mood lighting. In step 3568, pool controllogic 70 transmits an instruction to the lighting system to operate thelights at the determined RGB color spectrum (e.g., matching the moodlighting to a selection, pool zone, yard zone, or all outdoor lights).

FIG. 33AD is a flowchart illustrating processing steps carried out bythe pool control logic 70 for communicating with a smart device in thepossession of a servicer/installer. In step 3570 the smart device scansan equipment bar code (e.g., at time of service, installation, etc.).Optionally, in step 3585, pool control logic 70 could receive theequipment bar code data scanned by the smart device. In step 3572, thesmart device identifies the location of the scanned equipment (e.g., viaGPS, geo-positioning application, etc.). In step 3574, the smart devicetransmits the location of the equipment and the date ofservice/installation to the cloud. For example, the location of theequipment and date of service/installation could be used for warrantyregistration, as well as other purposes, as described hereinbelow. Thecloud could be accessed by pool control logic 70, or a third partysystem (e.g., smart device/maintenance system used byservicer/installer). Optionally, in step 3582, pool control logic 70could save the location of the equipment and the date ofservice/installation to the memory for later retrieval. In step 3576,pool control logic 70 receives information on existing equipmentinstalled at the same location/site (e.g., from the cloud or from thememory). In step 3578, pool control logic 70 determines if it is at ornear time to service/replace any of the existing installed equipment. Ifa positive determination is made, the process proceeds to step 3580,where pool control logic 70 transmits a notification to theservicer/installer (e.g., “Device due for maintenance in X days”) andthe process ends. Optionally, if a positive determination is made instep 3578, the process could proceed to step 3584, where pool controllogic 70 transmits information to the servicer/installer regarding pastissues with the equipment at the location/site and the process ends. Ifa negative determination is made in step 3578, the process ends. Thisservice information could also be accessed through the cloud and viewedby the servicer/installer, original equipment manufacturer, orauthorized service center. The service information could also beprovided to the servicer/installer before arrival at the site through asmart device and/or application utilizing geo-fencing and globalpositioning systems (e.g., a geo-fence is placed around the site and theservice information is provided to the servicer/installer upon crossingthe geo-fence threshold), discussed hereinbelow.

FIG. 33AE is a flowchart illustrating processing steps carried out bythe pool control logic 70 for communicating with an application used bya servicer/installer. In step 3586, a smart device scans an equipmentbar code (e.g., at the time of service, installation, etc.). Optionally,in step 3606, pool control logic 70 could receive the equipment bar codedata scanned by the smart device. In step 3588, an application on thesmart device receives equipment information (e.g., web data from theequipment manufacturer). In step 3590, the application displays criticalequipment requirements (e.g., plumbing size, flow, clearance, etc.). Instep 3592, the application receives information on existing equipment atthe same location/site (e.g., from the cloud or from memory). Theapplication can receive information on existing equipment by way of asimilar process as to that described herein, in connection with FIG.33AD. Alternatively, in addition to scanning the equipment beingscanned/installed, any preexisting equipment could be scanned, and dataon the preexisting equipment could be received from the cloud or frommemory. In step 3594, the application analyzes the information for anypotential adverse interactions with other equipment installed at thesame location/site. In step 3596, the application determines if thereare any potential adverse interactions. If a positive determination ismade, the process proceeds to step 3598, where the application displaysa notification to the servicer/installer (e.g., “Caution—incompatibleequipment”). If a negative determination is made, the process proceedsto step 3600, where the application receives known pool parameters(e.g., location, regional weather/environmental conditions, poolgeometry, connected pool devices, energy costs, user preferences, etc.).In step 3602, the application determines optimal settings for the newlyserviced/installed equipment. The application can recommend programmingbased on regional preferences, including seasonal programming (summer,winter, etc.). Further, the application can estimate energy costs basedon location weather data and other locational factors. The priceestimation can take into account local currency. In step 3604, theapplication displays the optimal settings for the newlyserviced/installed equipment. While the process described hereinabove,in connection with FIG. 33AE, makes reference to an application thatcould be used by a servicer/installer, pool control logic 70 could alsoaccomplish these same steps.

It is noted that global positioning and geo-fencing systems could beutilized with the systems of the present disclosure to provide aservicer with service opportunities (e.g., time to service/replaceexisting equipment). For example, a smart device having a globalpositioning system could be used to alert the servicer of serviceopportunities when an application on the smart device recognizes thatthe current location of the smart device is within a specified range ofa geo-fenced area around a site having equipment in need ofservicing/replacement. In this regard, FIG. 33AF is a flowchartillustrating processing steps carried out by notifying a servicer ofservicing opportunities around his/her current location. In step 3608,an application receives current location data (e.g., GPS coordinates)from a smart device. The application could run on the smart device, alaptop, a remote server having a web-accessible user interface, or anyother suitable mobile device that can accompany the servicer/installer.In step 3610, the application receives the location of equipment anddate of service/installation from the cloud within a specified range(e.g., location and service/installation dates of equipment within 50miles. In step 3612, the application determines if any of the equipmentwithin the specified range needs servicing/replacement. In step 3614,the application places a geo-fence around sites with equipment needingservicing/replacement. In step 3616, the application determines if thecurrent location of the smart device (e.g., mobile device runningapplication and carried by the servicer) is within a geo-fenced area. Ifa negative determination is made, the process reverts to step 3608. If apositive determination is made, the process proceeds to step 3618, wherethe application transmits a notification to the servicer/installer(e.g., location of site, equipment needing service/replacement, pastissues, etc.) and the process reverts to step 3608. While the processdescribed hereinabove, in connection with FIG. 33AE, makes reference toan application that could be used by a servicer/installer, pool controllogic 70 could also accomplish/be used in connection with these samesteps. For example, pool control logic 70 could transmit the locationand service date of the equipment to the cloud or same the data tomemory, where the data is later accessed by the application, or poolcontrol logic 70 could determine if any of the equipment needsservicing/replacing and transmit a notification to the applicationregarding same.

FIG. 33AG is a flowchart illustrating processing steps of amaintenance/targeted marketing system in accordance with the system ofthe present disclosure for notifying a pool/spa owner that equipment isin need of service. In step 3620, the maintenance system receives (e.g.,from pool control logic, cloud, servicer, etc.) data on the location ofequipment and date of service/installation. In step 3622, themaintenance system determines if any equipment needsservicing/replacement. In step 3624, the maintenance systemcross-references the location of the equipment needingservicing/replacement with a customer information database (e.g., housephone, cellular phone, home address, email address, etc.). In step 3626,the maintenance system transmits a notifications to owners/users withequipment needing servicing/replacement (e.g., robo-calls, SMSmessaging, letters, emails, etc.).

FIG. 33AH is a flowchart illustrating processing steps carried out bythe pool control logic 70 for limiting the operation of pool deviceswhen the an adult is not present. In step 3628, pool control logic 70retrieves pool location, geometry, and orientation data from memory. Thepool location, geometry, and orientation data can be obtained by way ofthe process described herein, in connection with FIG. 33A. In step 3630,pool control logic 70 places a geo-fence around the pool/spa area. Instep 3632, pool control logic 70 receives operational data from a smartdevice of an adult/parent (e.g., GPS coordinates). In step 3634, poolcontrol logic 70 determines if the smart device is within the geo-fencedarea. If a positive determination is made, the process proceeds to step3636, where pool control logic 70 transmits an instruction to the pooldevices to operate in “Adult Mode” (e.g., parent, adult-only, featuresenabled) and the process reverts to step 3632. If a negativedetermination is made, the process proceeds to step 3638, where poolcontrol logic 70 transmits an instruction to the pool devices to operatein “Safe Mode” (e.g., parent, adult-only, features disabled) and theprocess reverts to step 3632.

FIGS. 34A-34J are diagrams showing additional embodiments of the pooland/or spa control system of the present disclosure, indicated generallyat 4610. More specifically, FIGS. 34A-34J illustrate modular relays4670, a wiring hub 4646, and a control module 4661 provided inaccordance with the present disclosure.

FIG. 34A is a diagram illustrating another embodiment of the system ofthe present disclosure, indicated generally at 4610. In this embodiment,network connectivity and remote monitoring/control is provided by way ofa wiring hub 4646 which can be easily mounted to a variety of surfaces(discussed hereinbelow in connection with FIGS. 34F-34I. The wiring hub4646 provides connections for various pool and spa equipment, such as avariable speed pump 4614 a, a single-speed pump 4613, and a legacyheater 4615, as well as other equipment. For example, the hub 4646 couldcommunicate with and control a smart valve actuator 4614 e, and/orlighting system 4614 h. Optional smart control relays 4670 could also bein communication with the hub 4646, or could communicate with any otherHUA (e.g., a unique addressing system, digital, analog or mechanicalswitches or dip switches) enabled pool/spa component capable ofreceiving or assigning a network address.

As can be seen, the hub 4646 could be in communication (e.g., using anyof the wired or wireless connections and associated communicationprotocols discussed hereinabove) with a control module 4661 having auser interface 4660. The user interface device 4660 could includephysical keys, a digital display, and/or a touchscreen 4662, as shown inFIG. 34A. Any other suitable input technologies, or any combinationthereof, could also be utilized, thereby enabling a user to interactwith the pool and/or spa control system 10. Additionally, the controlmodule 4661 could provide a WiFi hotspot for allowing a serviceprovider's cellular telephone, tablet computer, or other mobilecomputing device 4644 to communicate with the system 10, and to controlthe pool/spa equipment shown in FIG. 34A. Communication between theservice provider's cellular telephone, tablet computer, or other mobilecomputing device 4644 and the system 10 could be established using theuser interface 4660 (e.g., using physical keys, a digital display,and/or by touch) or by proximity to the control module 4661, describedin greater detail hereinbelow. A breaker panel 4627 provides electricalpower to the various devices shown in FIG. 34A. Breaker panel 4627 couldalso be a smart circuit breaker (e.g., a circuit breaker that can becontrolled via wired or wireless communication) used to provide and/orto interrupt power to the devices disclosed herein. In some embodiments,photovoltaic (e.g., solar) cells and/or systems could provide electricalpower to one or more of the various devices shown in FIG. 34A. The hub4646 could also communicate with the homeowner's WiFi router 4622 viathe control module 4661, thereby providing an Internet connection to thepool/spa components in communication with the wiring hub 4646. A remotepool/spa server 4618 could communicate with the router 4622 via theInternet, to provide remote monitoring and control of the pool/spaequipment, if desired. Additionally, the server 4618 could communicatewith one or more remote computer systems 4620 such as a smart phone, atablet computer, a remote computer system, home automation, etc., ifdesired. The pool/spa control logic discussed herein could be installedin the server 4618, in one or more of the remote computers 4620, and/orin the control module 4661, if desired.

As illustrated in FIG. 34A, the system could include a control/UI/WiFimodule 4661 which includes an external controlling unit 4660 having auser interface (“UI”) display 4662, a control board with processor andmemory (not shown), and which is able to communicate with a home router4622 by way of a wired or wireless connection (e.g., integralWiFi/cellular/RF, wired Ethernet, and/or an external WiFi/cellularantenna). More specifically, the Control/UI/WiFi module 4661 couldinclude a printed circuit board (not shown), a control module having aprocessor and memory, a graphical user interface display 4662 (e.g.,LCD, LED, buttons, knobs, capacitive plastic, etc.), a WiFi module,ethernet jack, USB port, LEDs, a sealed enclosure, a mounting bracket(e.g., for mounting the module 4661 to a wall, post, pole, plumbing,etc.), and a means for communication with a wiring hub 4646. In otherembodiments, the control module 4661 could be mounted on or insideanother piece of equipment such as, for example, a pump, heater,chlorinator, control, timeclock, etc.) The control module 4661 couldcommunicate with the wiring hub 4646 by way of either wired (e.g.,RS485, ethernet, USB, serial, etc.) or wireless (e.g., WiFi, Bluetooth,Zigbee, ZWave, cellular, thread, etc.) communication protocols.

The wiring hub 4646 includes an enclosure, provisions for wire routing(meeting or exceeding IPxx ingress protection standards), a printedcircuit board, and a power cord “whip” (cable). The wiring hub could beprovided with communication interfaces for receiving and transmittingdata to one or more devices. For example, the wiring hub couldcommunicate with, temperature sensors, external sensor, flow sensors,pressure sensors, chemical and physical property sensors, valve actuatorports, RS485 bus connections (for smart devices, smart relay(s), smart(firmware assisted) valves, smart sensors, and other smart devices)chlorination connections, lighting connections, power connectors, lowvoltage relays, etc. Additionally, the communication interfaces couldalso be used to expand the functionality of the wiring hub such as, forexample, by being used to interface with wireless communication chips(e.g., WiFi, Bluetooth, Zigbee, ZWave, cellular, thread, etc.), andadditional communication modules.

The Control/UI/WiFi module 4661 is used to monitor, activate, andoperate installed pool equipment. The control module 4661 could operatethe equipment as needed with people present or absent, in the pool oraround the backyard, which may be year-round and/or all-day based onapplication (e.g. residential vs. commercial) or location. The controlmodule 4661 also monitors, detects, informs, and initiates protectiveaction through a heuristic capability (using one or more algorithms) byaccumulating and analyzing raw sensor data and external data toautomatically develop ‘normal’ and ‘abnormal’ operating ranges, thentaking action or alerting operators when the algorithm detects thatoperation is out of normal or safe operating range. The heuristicalgorithms can also learn from operator response to a condition, andtherefore account for factors not anticipated or sensed by theequipment. Such algorithms could be implemented in any of theembodiments discussed in the present disclosure, and need not be limitedto the control module 4661.

The control module 4661 provides for distributed (e.g., the controlmodule can be moved throughout the pool/spa environment based on theparticular needs of the pool/spa environment and needs/wants of thepool/spa user) control of pool equipment and conditions that can bemoved according to the specific needs of a particular pool/spaenvironment and/or user. For example, the control module 4661 could bemoved away from the power switching or pool equipment to a remotelocation, closer to the wireless network, or closer to the home, orcloser to wherever the user is (e.g., poolside). In addition, thecontrol module 4661 could also allow for full pool control capability tobe moved, or transferred, to a remote location from the pool pad, suchas for example, to a cloud server 4618 or to a remote office.

The connection to the wiring hub can be extended or virtualized viacommunications protocol over other mediums. The wiring hub 4646 couldlocally switch power or the wiring hub 4646 could command smart relays4670 (discussed hereinbelow) to switch power or control signals. Thewiring hub 4646 could further be provided with “limp mode” behaviors(discussed in greater detail hereinbelow) if communication to thecontroller is severed or impaired. These behaviors could include, butare not limited to, maintaining interlocks between relays, schedules, orother special behaviors that are intended to keep the pool systemfunctional at a reduced level until normal operation is restored. Thewiring hub 4646 could also integrate safety control functions needed forheating or other appliances, or the wiring hub 4646 could directlycommunicate with such safety controls.

The control module 4661 and wiring hub 4646 could be mounted on a wall,on a post, on a stake (e.g., rebar), on a piece of plumbing, inside oron a piece of existing pool/spa equipment (e.g., pump, heater,chlorinator, existing automation, etc.). Further the control module 4661and wiring hub 4646 may be mounted together in a single location ormounted separately.

The wiring hub 4646 could provide power to the control system by tappingexisting power connections at the load end of the conduit coming from asub panel, timeclock, control, junction box or other electricalconnection to the powered equipment. After turning off the power atbreaker 4627, a pool installer or service professional could remove thepower whip from the existing equipment, and then reconnect the powerwhip to the wiring hub, thereby providing power to the wiring hub andcontrol module 4661 without having to access the line voltagecompartment of an electrical panel. Further, a new whip could then beconnected to the wiring hub 4646 which could, in turn, deliver powerfrom the wiring hub 4646 to additional powered equipment (see FIGS. 34Band 34C). For example, an existing power conduit from a variable speedpump 4614 a or a single speed pump 4613 could be disconnected from thevariable speed pump 4614 a and then plugged back into, or otherwiseconnected to, the wiring hub 4646. A new power whip could then be usedto connect the wiring hub 4646 to the variable speed pump 4614 a.Further, a communication cable (e.g., RS485) could be connected betweenthe wiring hub 4646 and the variable speed pump 4614 to providecommunication therebetween. In another example, the installed powerconduit from a heater 4615 could be disconnected from the heater 4615and then plugged into, or otherwise connected to, the wiring hub 4646. Anew power conduit could then be used to connect the wiring hub 4646 tothe heater 4615 and a communication cable (e.g., RS485) could beconnected between the wiring hub 4646 and the heater 4615 to providecommunication therebetween. In a further example, the installed powerconduit from a powered device (e.g., pump, heater, chlorinator, cleaner,transformer, etc.) is disconnected from the powered device and thenreconnected to an input of the wiring hub 4646. A new power conduitcable is then used to connect the wiring hub 4646 to a smart relay 4670and an additional power conduit cable is used to connect the smart relay4670 to the powered device (e.g., pump, heater, chlorinator, cleaner,transformer, etc.). As illustrated in FIG. 34F, the wiring hub 4646and/or control/UI/WiFi module 4661 could also be powered directly from a120V/240V NEMA style plug, thereby qualifying as a cord-connectedappliance. Because safety codes allow for increased flexibility in thelocation and mounting of cord-connected appliances, the labor to installor retrofit the devices is reduced, and the accessibility to the user,installer, or site wiring technician is improved. The modular nature ofthe wiring hub 4646 and control module 4661 provides for configurationsthereof that are tailored for integration with the installed pool/spaequipment (e.g., such as a pump, heater, chlorinator, etc.) or that canremain in stand-alone configurations, thereby providing flexiblecommunication to the controlled devices (e.g., via a wired or wirelessconnection). It is within the scope of the present disclosure that anyand all of the pool control logic described herein could be located inand run from the wiring hub 4646 and/or the control module 4661.

The modular relays of the present disclosure could be used in connectionwith both residential and some commercial applications. The modularrelays provide control (e.g., activation and deactivation) of a piece ofpool equipment based on a control signal received from a controller(e.g., control module 4661) or local manual input (discussedhereinbelow). For example, the modular relay 4670 could be used tocontrol a pump, cleaner booster, spa booster, heater, pool lights, spalights, landscape lights, post lights, accent lights, other types oflights, fans, chlorinators, water feature pumps, pond pumps, andcleaners, as well as additional pieces of electricallypowered/controlled pool/spa equipment and yard equipment/devices. Themodular relay 4670 could include a printed circuit board, a processor,an HUA (e.g., a unique addressing system, digital, analog or mechanicalswitches or dip switches), activation and/or deactivation button, statusLEDs, a relay (s), an enclosure with multiple power entries, a powercord whip, and wired (e.g., RS485, USB, ethernet, etc.) and/or wirelesscommunication (e.g., WiFi, Bluetooth, Bluetooth LE, ZWave, Zigbee,cellular, thread, mesh, etc.) interfaces for communicating with thecontrolling hardware.

The modular relay 4670 can be controlled by a variety of controllingdevices. For example, the relay 4670 could be controlled on schedule(e.g., existing timeclocks 4672), using an algorithm (e.g.,controller/pool control logic 70), through user input (e.g., a button onthe modular relay), from a web enabled device (e.g., through the cloud,the router or direct) or in stand-alone manual mode. The controllingdevices could include, but are not limited to, a pump, a heater, acleaner, a salt chlorinator, a lighting controller, a chemicalautomation system, a hub or an existing controller, a smart phone,tablet, computer, or smartwatch, or a voice enabled device (e.g., AmazonEcho).

The modular relay of the present disclosure could be capable ofdetecting when there is no communication from a controllingsystem/device, if the modular relay has not yet been configured, or ifthe modular relay has been improperly operated or installed, and inresponse, placing itself in stand-alone manual or ‘limp’ modes.

In stand-alone mode (as well as service, manual, limp or other modeswhich are independent from commands from a controller), the relay canoperate independently of the pool/spa control system. For example, inthe event that communication with the control system could not beestablished, the modular relay could automatically enter standalonemode. In standalone mode, the modular relay could provide a visualindication (e.g., a flashing or steadily illuminated multicolor LEDstatus indicator) that communication with the control system could notbe established, or that communication has been severed. The modularrelay could then implement a limp mode for the relay. In limp mode themodular relay could still be activated in response to timedevents/schedules. The behaviors of the modular relay when in manual orlimp modes could be defined by firmware or set by user preference, thusproviding the ability to maintain a schedule, always turn off, alwaysturn on, switch to a special schedule, or other actions intended tomaintain the water body while the pool/spa control system is in a stateof reduced functionality.

The relay could also enter service mode in response to motion or otherproximity detection (e.g., when a service provider is in close proximityto a piece of pool/spa equipment), geofencing (e.g., when a serviceprovider enters the vicinity of the pool/spa area), voice command (e.g.,in response to audible request to “enter service mode”) or a buttonpress (e.g., a physical “service” button located on the relay). Servicemode could also allow a technician to temporarily operate the relay andthen pass control back (e.g., manually or via a timer) to thecontroller. The modular relay device could also allow local control(e.g., by touch or voice) at the smart relay without disabling remotecontrol.

In an exemplary embodiment the relay could enter service mode inresponse to a service provider being in close proximity to the relay.For example, an application running on the service provider's mobiledevice could communicate with the relay using any of the communicationprotocols heretofore described and grant the service provider access toconfiguration parameters for the relay and/or the pool control system10. In further embodiments, additional security measures could beimplemented for preventing unauthorized access to the configurationparameters. For example, a password could be required for access to theconfiguration parameters. The password could be stored within theapplication so as to auto-populate and unlock the system parameters whenthe service provider is in close proximity to the relay. Alternatively,the service provider could be prompted for a password when in closeproximity to the relay. Multiple passwords could be set so as to unlockvarious system parameters associated with individual passwords. Forexample, a service provider password could be used to unlock all of thesystem parameters, whereas a pool user password could only unlock asubset of the system parameters.

The modular relay could indicate the status of the modular relay throughLEDs (e.g., integrated into the modular relay), text, graphics, or sound(e.g., provided on a user interface device), or directly to web, WiFi,Bluetooth, Zigbee enabled devices (e.g., smartphones and other mobiledevices). For example the status indications could include, but are notlimited to, power, Internet connection, communicating with the system,no communication with the system, WiFi connected, no WiFi, controlledmode, service mode, enabled or disabled, current, voltage, run-timehistory, actuation history, etc.

The smart relay can identify itself to a controller (e.g., by providinga physical or network address, or by asking for an address to beprovided by the controller automatically), thereby allowing the modularrelay to communicate with, and be controlled by the controller. Themodular relay could also be manually given a particular network address.The controller could control one or a plurality of relays independently,in a timed sequence, or simultaneously.

As illustrated in FIG. 34A discussed in greater detail hereinbelow, themodular relay device could be provided with its ownproprietary/dedicated electrical/junction box (“enclosure”) for one(e.g., relay 4670) or a plurality of relays (e.g., wiring hub 4646), butcould also be installed in an existing single gang, dual gang,timeclock, or non-traditional electrical/junction box. As shown in FIGS.34G-34I, the proprietary/dedicated enclosure of the modular relay devicecould be provided with a multitude of means for mounting the enclosureto the pool pad. For example, the means for mounting the enclosure couldinclude, but are not limited to, hose clamps, screw holes, rebar mounts,zip-tie holes, etc. FIG. 34F illustrates the modular relay 4670 withintegral means for mounting to a plumbing pipe (e.g., rounded back).FIG. 34G illustrates the modular relay 4670 with integral means formounting to a pole (e.g., rounded back). FIG. 34H illustrates themodular relay 4670 with integral means for mounting to a post or wall(e.g., screw bosses). FIG. 34I illustrates the modular relay 4670 withintegral means for mounting to rebar inserts (e.g., rebar holders). Asecondary structure could also be provided and could include one or moreof the means for mounting the enclosure.

As illustrated in FIG. 34B, the modular relay device could include anincoming (power) whip/connection (including conduit connection hardware)for conducting power from the supply (e.g., breaker panel). Theconnection could be built in, attached, supplied or purchasedseparately. According to the embodiment illustrated in FIG. 34B,incoming whip(s) could connect to an existing sub-panel, timeclockenclosure, or junction box with conductors connecting to existingequipment's power connection and the opposite end of the incomingwhip(s) could connect to the relay connection in the modular relaysystem inside the enclosure. It is desirable to utilize the existingwhip to connect the breaker panel 4627 to the wiring hub 4646 or anotherintermediary piece of equipment (e.g., timeclock 4672) so as to avoidentering/accessing the “hot” section of the breaker panel 4627 orsubpanel.

Whips can enter and exit the enclosure from the same side (e.g., bothentering and exiting the bottom of the enclosure as shown in FIG. 34B)or from opposite sides (e.g., from a side to the top or bottom, from thetop or bottom to the side, or from the top to the bottom or bottom tothe top, etc.). The whips could be coupled to the enclosure usingstraight connections, using 45 degree or 90 degree conduit connectors,or low profile connectors. Standard conduit connectors could be used orproprietary connections could be added to improve simplicity ofconnections. The threading of the conduit connectors could be male orfemale, or alternatively, the conduit connectors and the enclosure neednot use threading at all. Additionally, there can be a conduit entryand/or exit in the cover of the relay or relay enclosure. All of theconduit entries/exits and conduit connectors discussed hereinabove couldalso have integral liquid tight cord entries for ease of installation.Accordingly, the modular relay device enclosure is designed such that itreadily accepts incoming whips from existing equipment (e.g., sub-panel,timeclock or junction box, etc,) and exiting whips to the powered andcontrolled device.

The enclosure of the modular relay device could have relays that aredetachable, that are integral, or that are integral and fully potted.Further, the relays could be permanently installed, mounted by way ofscrews, or could be mounted by way of a hinged connection (inside oroutside) with one or more screws.

The modular relay device could have a ground fault circuit interrupter(“GFCI”), arc fault, or other protective circuit built into the relay.The modular relay device could also measure load power, supply voltage,contact closure, contact resistance, or general contact health. Inaddition, the modular relay device could measure circuit or ambienttemperature, or sense water flow or temperature via an attached sensor.The inclusion of GFCI or other safety functions could satisfy wiringrequirements without needing an additional (and expensive) GFCI breaker.

The relay could be encased/over molded into a line cord, therebyallowing a servicer/installer to remove the existing whip from the powersupply (e.g., breaker panel) to the piece of equipment and replace itwith a new line cord having an integral relay. It is desirable toutilize the existing whip to connect the breaker panel to the wiring hubso as to avoid entering/accessing the “hot” section of the breaker panelor subpanel, and use the new over molded line cord with integral relayto connect the wiring hub and piece of pool/spa equipment. However, thenew over molded line cord with integral relay could be used to connectbreaker panel and the wiring hub, and the existing whip could be used toconnect the piece of pool/spa equipment and the wiring hub. The new linecord could further include a means to communicate with the controller(e.g., RS485, USB, Ethernet, Bluetooth, WiFi, Zigbee, Cellular, Thread,LE Bluetooth, any mesh type network, etc.).

The relay could also include a number of additional smart relaycapabilities that could allow for the addition of other circuitry,inputs, or external communication modules. For example, the modularrelay device could accept sensor inputs (e.g., temp, light, wind, etc.)or external data (e.g., storm detection, web servers, GPS inputs for geofencing, etc.). It is within the scope of the current disclosure thatany and all of the pool control logic described herein could be locatein and run from the relay 4670.

FIG. 35 is a diagram illustrating another embodiment of the system ofthe present disclosure, wherein a wireless communication device,indicated generally at 4800, provides communication between pool/spacomponents or equipment, a home router, and the internet. The wirelesscommunication interface 4800 allows pool controlling devices (e.g.,pump, heater, chlorinator, cleaner, hub, automation, etc.) tocommunicate with the home router and thereby communicate with theInternet. The wireless communication device could be located directly onthe main (intelligence) printed circuit board (“PCB”), could beattached/plugged into the main PCB, could be provided as a modularupgrade to the main PCB or PCB enclosure, could be a modular upgradeto/external to the main PCB enclosure, or could be located remotely tothe main PCB enclosure. As shown in FIG. 35 , an antenna could bemounted with (internal antenna 4804) or remote to (external antenna4816) a wireless transceiver module 4802 in the embodiments describedherein. The wireless communication interface 4800 could also allow poolcontrolling devices to directly communicate with web enabled devices(e.g., smartphones, tablets, thermostats, voice enabled devices, etc.)without the need to go through a home router. Additionally, the wirelesscommunication interface 4800 could provide communication between thepool/spa components or equipment and the web/cloud server, therebyproviding tools and indicators to assist a user in solving connectivityproblems with the controller through the server/cloud and to theconsumer and apps.

As shown in FIG. 35 , the wireless communication interface 4800 includesa protocol processor 4808, a radio circuit 4810, and an antenna 4804 andcould be installed directly on the circuit board of the controllingequipment. In another embodiment, the wireless communication interface4800 could have a secondary external antenna 4816 that could beinstalled for better connectivity (e.g., signal strength) or forplacement at a location closer to the home router.

The wireless communication interface 4800 could also include a printedcircuit board, a protocol processor 4808, an HUA module 4812 (e.g., forproviding a unique hardware address), a radio circuit 4810, an antenna4804, status LEDs 4814, an ethernet/USB/RS485/Bluetooth connection 4806,and an enclosure that could be mounted using the enclosure itself orusing a secondary mount. For example, a secondary mount could beprovided for mounting the wireless communication interface 4800 without(or with) the use of tools (e.g., by snapping the antenna to the mountor other suitable methods). In addition to, or in place of, theethernet/USB/RS485/Bluetooth connection 4806, the wireless communicationinterface 4800 could include any wired or wireless communicationprotocol disclosed herein for communicating with the controllerhardware.

An antenna (internal antenna 4802 or external antenna 4816) is used tocommunicate commands from remote web enabled devices (e.g., wirelessdevices) to a controller unit, which activate equipment as needed withpeople present or absent, in the pool or around the backyard, which maybe year-round and/or all-day based on application (e.g. residential vs.commercial) or location. Additionally, the wireless communicationinterface 4800 could communicate with the controlling devices by way ofRS485, USB, Bluetooth, ethernet, cellular, WiFi, Zigbee or othercommunication protocols. For example, the antenna 4802 could facilitatecommunication with the home router through WiFi, Cellular, Bluetooth,ethernet, or other communication protocols.

The wireless communication interface 4800 could also be provided with abutton to activate service/troubleshooting indicators (e.g., LEDs 4814)to provide information relating to the status/connectivity problems ofthe wireless communication interface 4800. For example, the wirelesscommunication interface 4800 could be provided with LED indicators 4814which could be illuminated in various colors (e.g., black, green,orange, red, etc.) and activation patterns (e.g., solid, blinking, etc.)based on the status of the wireless communication interface 4800. Forexample, a green LED could indicate normal operation, a yellow LED couldindicate an issue that can be addressed by the user, and a red LED couldindicate an issue that needs to be addressed by a service provider. Thestatus LEDs could further include a power icon LED (indicating badcable, no power, power ok, WPS activation), a router icon LED(indicating router not present, incorrect password, no IP addressassigned, router DHCP error, incompatible router/black listed firmwareor model), a web icon LED (indicating web not present, no UDP connectionallowed, no remote server found, connected to web server), an Interneticon LED (indicating no internet/no google, high error rate, connectedto the internet), a signal strength LED (indicating not configured, outof range, weak signal, 75% or greater signal), a quality of signal LED(indicating error rates via a bar graph, high error rate, strongconnection/low error rate), and a connection speed LED (indicatingreduced connection speed/sufficient connection speed). Additionally, theLEDs could indicate the status of the connection as illustrated in Table1 below.

TABLE 1 LED State Connection Status Power: Off No Power, USB/WireCorruption Power: Off No SSID Password Router: Blinking No IP AddressInternet: Off No Internet Access (No Google) Router: Blinking No DHCPServer Response (Static Only) Router Config: Blinking No IP Path −>Remote Server (Internet is OK) Router Config: Blinking No UDP to RemoteServer (Firewall) Radio Link: Blinking High Error Rate (Break Out) NoNetwork Connection Internet: Blinking Frequent Internet Response DelaysSlow Flicker on High Trending Issue Past Issue Not Currently HappeningPower: Slow Flicker Firmware Needs Update radio, host, optional, urgentPower: Slow Flicker WPS for Unknown Password

The connection status could also be communicated through the controlleruser interface (e.g., a status page) to help installers/users identifycommunication problems with the cloud and/or application using similarmulticolor status indicators as described above. For example, all faultscould be provided in a list with one color (e.g., green) or anothercolor (e.g., red) indicators to identify a connection problem area. Thestatus page could also provide a solution to a particular connectionproblem associated with a color. Further, the system could prompt theuser to contact the manufacturer in the event that a problem is notknown or that the problem is known to not be resolvable through atroubleshooting manual.

The status page could be activated through a service button (e.g.,provided on the control device, pool/spa equipment, or in anapplication) to allow a web-enabled device to obtain the status of thewireless communication interface via an application. For example, theapplication status page could provide all of the faults in a list withgreen or red indicators to easily identify problem areas, a descriptionof the solutions to particular problems, a walk-through presentation onhow to address/fix the problem, and/or a video illustrating how toaddress/fix the problem. The application could also provide aconfiguration walk-through page to instruct a user on how to configurethe wireless communication interface. The configuration walk-throughpage could be activated through a service button. The application couldalso connect to a service to provide remote customer service via aweb-enabled controller which could allow the service provider toremotely troubleshoot and fix the problem with minimum user interaction.

FIG. 41 is a flowchart illustrating installation steps, indicatedgenerally at 6000, for installing the pool and/or spa control system4610, as described above in connection with FIGS. 34A-34J of the presentdisclosure. Additionally, FIGS. 42A-42I are diagrams furtherillustrating the installation steps of FIG. 41 .

As shown in FIG. 41 , in step 6002, a pool or spa installer or serviceprofessional, hereinafter “installer,” could mount the wiring hub 4646,described hereinabove, in an existing pool or spa environment (e.g., ata pool equipment pad). For example, as shown in FIG. 42A, an existingpool or spa environment could include a lighting system 4614 h having aswitch 6028 (e.g., a single-gang light switch), a single-speed (e.g.,booster) pump 4613, an existing filter pump (e.g., single or variablespeed) 4614 a, a heater 4615, timers or timeclocks 4672, and a powersource 4627 (e.g., a breaker panel). Existing power conductors 6030 a-ccould provide power to existing pool or spa devices directly from thepower source 4627 or via intermediary devices (e.g., switch 6028 ortimeclocks 4672). Accordingly, the power conductors 6030 a-c couldinclude power cables, conduits, and the like. The existing pool or spaenvironment could also include any of the other pool or spa devicesdisclosed herein. The wiring hub 4646 could be provided with any of themounting means described above in connection with the smart relay 4670and shown in FIGS. 34G-34I. For example, the means for mounting thewiring hub 4646 could include, but are not limited to, hose clamps,screw holes, rebar mounts, zip-tie holes, etc.

Optionally, in step 6014, the installer could also mount a controlmodule 4661. The control module 4661 could be mounted at a locationproximate to the wiring hub 4646 (see FIG. 42B), or could be removablyaffixed such that it can be moved according to the specific needs of aparticular pool or spa environment and/or user. For example, the controlmodule 4661 could be removably affixed such that the control module 4661could be moved away from the pool pad to a location closer to a wirelessnetwork, a home, or to any convenient location for the user (e.g.,poolside). The control module could also be provided with any of themounting means described above in connection with the smart relay 4670and shown in FIGS. 34G-34I. Further, while the wiring hub 4646 andcontrol module 4661 could be provided as separate components, it iswithin the scope of the present disclosure that some, or all, of thefunctionality of the control module 4661 could be integrated into thewiring hub 4646. Accordingly, wiring hub 4646 and control module 4661could be provided as a single, integral component, thereby eliminatingthe need to separately mount control module 4661.

In step 6004, the installer could disconnect an existing power conductorfrom an existing pool or spa device. For example, as shown in FIG. 42C,existing power conductor 6030 a could be disconnected from existingfilter pump 4614 a. In step 6006, the existing power conductor can beconnected to the wiring hub. For example, as shown in FIG. 42D, the endof existing power conductor 6030 a that was disconnected from variablespeed pump 4614 a could be connected to an input of wiring hub 4646,thereby electrically coupling the power source 4627 to the wiring hub4646 (e.g., via timeclock 4672) and providing power thereto. In step6008, a first end of a new power conductor can be connected to thewiring hub and then in step 6010, a second end of the new powerconductor can be connected to the existing pool or spa device. Forexample, as shown in FIG. 42E, a first end of new power conductor 6032 ais connected to wiring hub 4646 and a second end of the new powerconductor 6032 a is connected to the existing variable speed pump 4614a, thereby electrically coupling the power source 4627 to the existingvariable speed pump 4614 a (via the wiring hub 4646) and providing powerthereto. This installation method enables a service provider to installthe wiring hub 4646 and provide power to one or more devices therefromwithout having to access the line voltage compartment of an electricalpanel. Importantly, as discussed above, the wiring hub 4646 can controloperation of the existing variable speed pump 4614 a by controlling thepower provided thereto based on, for example, any of the control logic70 discussed in connection with control system 10 of the presentdisclosure.

In step 6012, communication is established between the wiring hub andthe control system of the present disclosure. For example, as shown inFIG. 42E, a communications cable 6034 could couple the wiring hub 4646and controller 4661, providing two-way communication therebetween. Asdescribed above, the wiring hub 4646 could communicate with the controlsystem 4610 via the controller 4661, or the wiring hub could communicatewith the control system 4610 via an integral communications module.Optionally, in step 6026, the controller 4661 can be connected to ahomeowner's WiFi network and the controller can be configured.

According to further optional aspects of the present disclosure, thewiring hub can provide communication between newly installed or existingsmart pool or spa devices (e.g., devices having network communicationcapabilities) and the control system of the present disclosure. Inoptional step 6016 of FIG. 41 , an installer could replace an existingpool or spa device (having no network communications capabilities) witha smart pool or spa device. For example, as shown in FIG. 42F, theexisting filter pump 4614 a shown in FIGS. 42A-E has been removed and asmart variable speed pump 4614 b has been installed in its place.

In step 6018, a second end of the new power conductor can be connectedto the new smart pool or spa device. For example, as shown in FIG. 42G,a first end of new power conductor 6032 a is connected to wiring hub4646 and a second end of the new power conductor 6032 a is connected tothe smart variable speed pump 4614 b, thereby electrically coupling thepower source 4627 to the smart variable speed pump 4614 b (via thewiring hub 4646) and providing power thereto.

In step 6020, communication is established between the wiring hub andthe smart pool or spa device. For example, as shown in FIG. 42I, acommunications cable 6034 could couple the wiring hub 4646 and smartvariable speed pump 4614 b, providing two-way communicationtherebetween. As described above, the wiring hub 4646 could communicatewith the control system 4610 via the controller 4661, or the wiring hubcould communicate with the control system 4610 via an integralcommunications module. Accordingly, communication between the controlsystem of the present disclosure and the smart variable speed pump 4614b is provided by way of wiring hub 4646. Importantly, as discussedabove, the wiring hub 4646 can control operation of the smart variablespeed pump 4614 b based on, for example, any of the control logic 70discussed in connection with control system 10 of the presentdisclosure.

According to further optional aspects of the present disclosure, thewiring hub can provide communication between additional newly installedor existing smart pool or spa devices and the control system of thepresent disclosure. For example, as shown in FIG. 42H, smart relays 4670a-b could be installed to provide control of existing pool or spadevices (e.g., lighting system 4614 h and single speed pump 4613) by thecontrol system of the present disclosure.

In order to install a smart relay 4670 a-b according to the presentdisclosure, an installer can first disconnect an existing powerconductor from an existing pool or spa device as shown in step 6004 ofFIG. 41 . For example, as shown in FIG. 42H, a first end of existingpower conductor 6030 b could be disconnected from the single speed pump4613. In step 6021, an installer can mount a smart relay device asdescribed above and shown in FIGS. 34G-34I. For example, the means formounting a smart relay 4670 could include, but are not limited to, hoseclamps, screw holes, rebar mounts, zip-tie holes, etc. In step 6022, theinstaller then connects the existing power conductor to the smart relay.For example, as shown in FIG. 42H, the first end of power conductor 6030b that was disconnected from the single speed pump 4613 is reconnectedto an input of the smart relay 4670 a. In step 6024, an installer canconnect a new power conductor to the smart relay and then in step 6010,the new power conductor is also connected to the existing pool or spadevice. For example, as shown in FIG. 42H, a first end of a new powerconductor 6032 a is coupled to the smart relay 4070 a and a second endof the new power conductor is coupled to the existing single speed pump4613.

In step 6025, communication is established between the smart relay andthe wiring hub. For example, as shown in FIG. 42I, a communicationscable 6034 could couple the wiring hub 4646 and smart relay 4670 a,providing two-way communication therebetween. As described above, thewiring hub 4646 could communicate with the control system 4610 via thecontroller 4661, or the wiring hub could communicate with the controlsystem 4610 via an integral communications module. Accordingly,communication between the control system of the present disclosure andthe smart relay 4670 a could be provided by way of wiring hub 4646.

According to further aspects of the present disclosure, a smart relaycould be configured to replace a light (or other) switch, therebyproviding for control of a lighting system (or other system or devicecontrolled by a switch) by the control system of the present disclosure.For example, as shown in FIG. 42H, an installer could remove asingle-gang lighting switch 6028 (see FIG. 42G) and replace it with asmart relay 4670 b. As shown in FIG. 42I, a communications cable 6034could couple the wiring hub 4646 and smart relay 4670 b, providingtwo-way communication therebetween and providing for control of theexisting lighting system 4614 h by the control system of the presentdisclosure. Importantly, as discussed above, the wiring hub 4646 cancontrol operation of the smart relays 4670 based on, for example, any ofthe control logic 70 discussed in connection with control system 10 ofthe present disclosure. According to some aspects of the presentdisclosure, the smart relays could also communicate directly with thecontrol module 4661 or other controller of the control system by way ofany wired (e.g., RS485, ethernet, USB, serial, etc.) or wireless (e.g.,WiFi, Bluetooth, Zigbee, ZWave, cellular, thread, etc.) communicationprotocols discussed herein.

FIG. 42I illustrates additional aspects of control system 4610 of thepresent disclosure. In addition to the devices discussed above, thewiring hub 4646 could accept connections from and provide for control ofadditional pool or spa devices. For example, the wiring hub couldprovide power to and/or control a smart valve actuator 4614 e or heater4615 and the wiring hub 4646 could be coupled to and receive informationfrom a plurality of sensors 4626, for example, air and water temperaturesensors. Importantly, in addition to, or in place of, the communicationscables 6034 shown in FIG. 42I, the pool or spa devices of could becommunicatively coupled by way of any wired (e.g., RS485, ethernet, USB,serial, etc.) or wireless (e.g., WiFi, Bluetooth, Zigbee, ZWave,cellular, thread, etc.) communication protocols discussed herein.

FIG. 43 is a system diagram which illustrates a recommendation system6100 for recommending upgrades to pool/spa equipment. The system 6100can include a pool or spa equipment pad 6102 having at least one of apump, filter, heater, chlorinator, controller, lights, or other pool orspa device (or any combination thereof). The present disclosure is notlimited to any specific device within the pool or spa equipment pad. Aservicer who services a customer's pool or spa can use his or hersmartphone 6104 to take a photograph of the pool or spa equipment pad6102 using a camera 6106 on mounted and installed with the smartphone6104. The servicer can use the regular camera application included onthe smartphone 6104. Alternatively, the servicer can launch the camerafunctionality of the smartphone 6104 using an application provided bythe system of the present disclosure as will be discussed in greaterdetail below. In either scenario, the smartphone can provide “guides” toposition and orientate the product in the camera application to aid inimage capture and recognition. The data captured by the smartphone(e.g., in the photograph taken by the smartphone) can be a barcode orother image code on a pool device. The smartphone can also capture datalabels on a product. Once the servicer takes a photograph of the pool orspa equipment pad 6102, the smartphone 6104 can upload at least onedigital photo 6108 to a network 6110 (e.g., the Internet) for transferto other computer systems as will be explained in greater detail below.The digital photo 6108 can be stored in a database and retrieved forfuture reference by a help desk or a service desk, if desired.

The digital photo(s) 6108 can be transmitted to and received by acomputer vision computer system 6112 for processing the digital photo6108 using suitable computer vision software to determine the make,model and manufacturer of all of the pool equipment on the pool or spaequipment pad 6102. The computer vision system 6112 can process adigital photo 6108 having a picture of just one component of the pool orspa equipment pad 6102, or it can process a plurality of components onthe pool or spa equipment pad 6102. The computer vision computer system6112 could include the IBM Watson or Google Lens systems which canprocess the digital photos 6108. These computer vision systems canprocess to the photos to determine the make, model and manufacturer ofthe device. The digital photo can be of the pool itself and the computervision system can process this photo to determine the size of the pooland the amount of gallons of water in the pool by using the camera lensparameters such as a the amount of feet the camera is from the groundand the amount of feet the camera is from the pool. The system can usethis information to solve for the depth of the pool and the otherdimensions and thereby determine the amount of gallons and pool size.The size and capacity of water of a pool can be used to make certainrecommendations as will be explained in greater detail below.

The data relating to the equipment on the pool or spa equipment pad 6102can be sent to a pool analytics computer system 6114. The pool analyticscomputer system 6114 can use the data generated by the computer visioncomputer systems 6112 to determine if there are upgrades or replacementsproducts that may be of interest to an owner of the pool or spa. Forexample, if the computer vision computer system 6112 determines that apool or spa equipment pad 6102 has a variable speed pump that is twoyears old and a newer model has greater energy efficiency or morepumping speeds, the pool analytics computer system 6114 can recommend tothe servicer or the pool owner that it may be time to upgrade to newermodel. Alternatively, with respect to chlorinators, the pool analyticscomputer system 6114 can determine whether the pool or spa equipment padhas an older chlorinator and whether a newer model exists to provideadditional benefits such as extending the life of chlorination cells,killing more bacteria, or reducing the overall chlorine demand. If sucha determination is made, then the pool analytics computer system 6114can recommend an upgrade to the newer model and specifically identify adevice which will provide the greater benefits. With respect to poolautomation, the pool analytics computer system 6114 can determine themake and model of a pool controller and determine whether a newerversion exists that provides greater benefits such as more control overthe pool or spa environment or a faster processor or better hardware ingeneral. If this is the case, the pool analytics computer system 6114can make a recommendation to upgrade to a certain newer device. Withrespect to pool lights, the pool analytics computer system 6114 candetermine the make and model of lights being used anywhere in the poolor spa environment, and can determine if a newer version of lightsexists that provide enhanced benefits such as more fixed colors, morelight shows, less energy usage, and more brightness. If this is thecase, the pool analytics computer system 6114 can recommend an upgrade.The above examples are for illustration purposes only and can apply toany type of upgrade for any type of device in the pool or spaenvironment and does not necessarily have to be limited to components ona pool or spa equipment pad 6102. It should be noted that the computervision services provided by the computer vision computer system(s) 6112could also be performed on a smartphone 6104, if desired.

The pool analytics computer system 6114 can be programmed and updatedwith information relating to new devices and new features that improveupon preexisting device to offer upgrades. The pool analytics computersystem 6114 can include a database with features associated with a makeand model of a device. Those features can be compared with a pluralityof newer models, and computer code can apply logic to determine whetherthe features of the new device offer improvements over the old versions.For example, if a certain variable speed drive is rated with a certainenergy performance, and a newer model is rated with a better energyperformance, then the system can make a positive determination that anupgrade can be recommended. Alternatively, the pool analytics computersystem 6114 can make suggestions for replacement equipment that may bebetter suited for a certain pool or spa environment than an existingdevice. For example, if a pool or spa equipment pad 6102 has a variablespeed drive rated for a pool having a capacity of 15,000 gallons, butthe pool actually has a capacity of 20,000 gallons, then the poolanalytics computer system 6114 can recommend a variable speed driverated at 20,000 gallons and provide the reason for the recommendation.The system can determine the size of the pool by an input from theservicer, by a database search based on the home address of the owner,by automatically using a geolocation of the digital photo 6108 as willbe discussed in greater detail below, or by leveraging the photo of thepool as discussed above.

In an alternative embodiment, the system 6100 does not need to have aseparate computer vision computer system 6112. Rather, the entire logicof the computer vision computer system 6112 can be done by the poolanalytics computer system 6114. In this case, the digital photos 6108can be directly received by the pool analytics computer system 6114 forprocessing to determine the make and model of the pool devices on thepool or spa equipment pad 6102.

The system can use the algorithms of the computer vision computer system6112 and the pool analytics computer system 6114 to extract user datafrom the digital photos taken on the servicer's smartphone. For example,the data which can be determined includes model number and the datarelating to the model number (power requirements, etc.). The data canalso include serial number and date of manufacture. The data can alsoinclude the date the device was installed which can be obtained from theservicer phone. The data can also include geolocation/home address fromthe phone or cooperative application as will be discussed herein. Thedata can also include the installing company information and theinstaller's name which can be default parameters entered by a servicer.The data can also include a home owner's name which can be autopopulated from address and geolocation information as discussed herein.This can be updated or overridden by the servicer or installer. The datacan also include MSRP or price information of the devices, which theservicer can override and which the system can leverage the overrideinformation to provide better pricing information to the manufacturersof the devices. The data can also include cost of installation which canbe provided by the installer and which can also be captured by thesystem to provide that information to the manufacturer so that themanufacturer can provide better price estimates for installation in thefuture. The data can also include information about one or more utilitycompanies servicing the pool owner's home and the ability to select theone or more utility companies in the user interface as will be discussedbelow. The utility information can be captured by determining thegeolocation information from the servicer smartphone and using adatabase based on the location to determine which utility or utilitiesservice that area. Moreover, the data can include annual energy costwhich can be determined by using the geolocation information todetermine power costs at that location from the utility and a formula tomake the calculation.

The system can use the algorithms of the computer vision computer system6112 and the pool analytics computer system 6114 and the data gatheredto provide auto-warranty registration and auto-rebate submissions. Forexample, the system can automatically register a product with themanufacturer by determining the information of the product and the poolowner information as discussed herein. Moreover the system canautomatically apply for utility company rebates based on the informationof the product and the pool owner information. Moreover the system canautomatically apply for manufacturer rebates based on the information ofthe product and the pool owner information. As discussed herein, thesystem can automatically determine product information with computervision systems and the pool owner information with geolocation. Thesystem can automatically connect with a utility or merchant submit toautomatically submit a rebate or the system can auto-populate a relevantform for the pool owner to allow for the owner's review and submission.These automatic procedures can be accomplished by using barcodeinformation taken from the servicer's smartphone and geolocationinformation from the data capture as discussed herein.

Still with respect to FIG. 43 , once the pool analytics computer system6114 generates a recommendation for upgrading or replacing the pooldevices on the pool or spa equipment pad 6102, it can send a customizedupgrade/replacement sales data 6116 over the network 6110 back to theservicer smartphone 6104. Alternatively, this data can be also sent to ahome owner smartphone 6118. Alternatively, this data can be also sentonly to the home owner smartphone 6118. The data 6116 can be presentedto the user in the form of a user interface screen as will be discussedin greater detail below. Once the servicer receives the data 6116 on hissmartphone 6104, the servicer can share these details with the homeowneror owner of the pool, and can discuss the upgrades further.Alternatively, the servicer can share the data 6116 with the homeownerby sending the data 6116 over the network 6110 to the homeowner'ssmartphone 6118. Alternatively, as mentioned above, the homeowner andservicer can receive the data 6116 contemporaneously on each of theirsmartphones.

FIG. 44 is a flowchart illustrating processing steps 6120 carried out bythe system of FIG. 43 . The process can begin with step 6122, whereinthe servicer captures a photo or a plurality of photos of the pool pador any particular pool equipment with the servicer's smartphone. Theprocess can then proceed to step 6124 where the photos taken in step6122 are transmitted to a computer vision computer system. The processcan then proceed to step 6126 where the photo(s) can be processed bycomputer vision algorithm(s) to identify pool/spa equipment types andmodel numbers. The process can be then proceed to step 6128 where pooland spa equipment types and model numbers are transmitted to a poolanalytics computer system. As discussed above, the transmission andprocessing of the photos in steps 6124 and 6126 can occur in the poolanalytics computer system. The process can proceed to step 6130 wherethe equipment type and model numbers are processed by recommendationalgorithm(s) at the pool analytics computer system(s) to identifysuitable upgrade and/or replacement equipment. As noted above, the poolanalytics computer system(s) can generate recommendations based on newequipment with enhanced features or provide recommendations to adoptcertain pool equipment to replace current pool equipment not suitablefor the current pool or spa. The process can then proceed to step 6132where customized sales forms/screens can be generated with pre-populatedupgrade and/or replacement equipment (generated by the recommendationalgorithm(s)) and transmitted to a servicer's smart phone. The processcan then proceed to step 6134 where a customized sales forms/screen canbe displayed to a service provider.

Optionally, as shown in FIG. 44 , after step 6122, the process canproceed to step 6136 where geocoding information can be extracted fromthe photos taken by the servicer on his smartphone. Smartphone cameraapplications can provide geocoding/geolocation/geotag information withgeocoding/geolocation/geotag information. Alternatively, thisinformation can be extracted using the smartphone GPS data. The processcan then proceed to step 6138 where the pool owner information isdetermined using geotag information extracted in step 6136. This caninclude a pool owner's home address. Once a home address is determined,a database of records can be searched to determine the pool equipment atthat home. A computer vision algorithm does not need to process thephotos because the geocoding/geolocation/geotag information can providea means for determining the pool equipment by determining the poolowner's address and the pool equipment being used at the address throughdatabase searching. A home owner's email address can be extracted usingthe geocoding/geolocation/geotag data by determining a home address andcross references a database relating the home address or home ownerpersonal identifying information. This information can be automaticallypopulated in the user interface screens as will be discussed below.

With reference to FIGS. 45-48 , the user interface screens generated bythe system 6100 of FIG. 43 and the process 6120 of FIG. 44 will now bediscussed in greater detail. FIG. 45 illustrates an initial userinterface screen generated by the system. A user profile portion 6200 isprovided which can be populated with pool owner information such asowner name, street address, email, zip code, total gallons, monthsoperating, whether there is a pool, a pool and spa, pool control, andcomments with respect to customer hassles. As noted above, the userprofile portion 6200 can be automatically generated by thegeocoding/geolocation/geotag information extracted from the servicer'ssmartphone which can use this information to retrieve an address and theaddress can be used with a database to populate the other fields.Alternatively, a servicer can manually enter a customer name which thesystem can take as an input and can automatically populate the rest ofthe fields based on an address book or database with fields related to acustomer name. Alternatively, an incoming call from a customer can usethe phone number from the caller ID to query a database having the restof the information related to the phone number, which the applicationcan use to auto-populate the remainder of the fields. If all of theinformation does not get populated, the system can alert the servicerand the servicer can request the information from the pool owner.Customer hassles can be automatically extracted by the system based onthe types of pool and spa components detected in the equipment pad 6102or can be manually entered by the servicer. The screen can also includetop level menus for the pool and spa devices including, but not limitedto, pumps, lights, heaters, cleaners, controllers, and chemicalautomation. A user of the application can choose any one of the productcategory buttons 6202 or can choose more than one.

FIG. 46 is drawing of a user interface screen illustratingrecommendations relating to upgrading pumps. This screen can include apool owner profile portion 6200 which can include the pool owner'sinformation as discussed above with respect to FIG. 45 . This screen canbe displayed after the user selects one or more of the product categorybuttons 6202 as discussed above in connection to FIG. 45 . The screencan also include a plurality of columns 6204. Column 6204 a can providecontext to the rows. For example, column 6204 a can include at least onepump which can have a general description such as “circular pump #1” or“pump #2 spa or water feature.” Column 6204 a can also include a portionfor specifying the upgrade number being suggested for each general pump,such as “upgrade 1,” “upgrade 2,” to “upgrade n.” The screen can alsoinclude the following columns: column 6204 b can include an existingproduct; column 6204 c can include a list of quantities to berecommended; column 6204 d can list the make and model of thereplacement models if any, which can be populated automatically by therecommendation systems and methods discussed above in connection withFIGS. 43 and 44 ; column 6204 e can include a cost for the replacementdevices; column 6204 f can include the estimated labor costs of thereplacement models; column 6204 g can include consumer benefits forusing the recommended upgrades over current devices; column 6204 h caninclude an amount of energy savings for each of the recommended productsif applicable; column 6204 i can include an amount of energy savings peryear for each of the recommended products if applicable; column 6204 jcan include a list of rebates if applicable; column 6204 k can includecomments with relating to the recommended products; and 6204 l caninclude timing information on when the recommended product should beinstalled.

As can be seen in FIG. 46 , fields 6206 a, 6206 b, 6206 c, and 6206 dcan relate to the specific details about the current devices being usedin the pool or spa which can be populated automatically by the computervision and/or geo-location systems and methods discussed above inconnection with FIGS. 43 and 44 . This auto-populate feature can happenin real-time upon the servicer taking a photograph of a pool orequipment pad, or the fields can auto-populated based on a previousphoto from a previous visit by the servicer. Fields 6208 a, 6208 b, and6208 c can be selected by a servicer by, for example, tapping the fieldwhich causes the system to display a color or pattern over the field. Bydoing so, the servicer can highlight his or her recommendation of whichreplacement product the pool owner should purchase out of a plurality ofautomatically recommended replacement products with respect to thecurrent device in column 6204 a. Columns 6204 h, 6204 i, and 6204 j canbe auto-populated with a real-time computer communication with a utilitycompany or a database having the information. Columns 6204 d, 6204 e and6204 f can be auto-populated as prices are known and labor costs can beestimated, and the servicer or a dealer can manually update such costsbefore they are presented to a pool owner or in real-time. The serviceror dealer can modify the price and estimated labor for the consumerproducts in a source database or such modifications can exist in alimited database on the servicer or dealer device. Column 6204 l can bemodified by a servicer by any means such as a drop down menu provided bythe user interface.

Once the servicer finishes making recommendations with respect to pumpsas shown in FIG. 46 , the servicer can select another device category insame screen and the system can repeat the process as discussed above inconnection with FIG. 46 . The servicer can then select a recommendeddevice among automatically generated recommendations within the newdevice category. The servicer can repeat this process for all relevantdevice categories that are available for a pool or spa. Alternatively,as mentioned above, the servicer can select more than one devicecategory which can prompt the system to recommend products for alldevices relating to the selected device categories. The pool owner canreceive the automatically generated recommendations and the servicer'schoice among them by an email, text, or link to an application on theowner's smartphone for retrieving the user interface screen of thesystem of the present disclosure.

FIG. 47 illustrates the user interface screen of FIG. 46 after theservicer has selected a replacement product. In particular, this userinterface can include the same information as the user interface of FIG.46 such as pool owner profile information and replacement products alongwith the servicer recommendation. As can be seen, a pool owner canselect a replacement on his/her own smartphone or on the servicer'ssmartphone or through any other means. Once this selection is made, thesystem can cause the replacement product details to be highlighted in adifferent color or pattern as shown in 6210 a-6210 b. As can be seen,the servicer recommended a replacement product in field 6208 a and thepool owner followed the recommendation by selecting the product as shownin 6210 a. Moreover, with respect to another device in the pool or spaenvironment, the servicer recommended a product among a plurality ofautomatically recommended products in field 6208 b but the pool ownerselected another product recommended automatically by the system of thepresent disclosure as shown in field 6210 b. Still further, with respectto yet another device in the pool or spa environment, the systemrecommended a plurality of devices and the servicer chose one of them infield 6208 c, but the pool owner decided not to upgrade as no device wasselected. By selecting and authorizing work to be done and a replacementproduct to be installed, the system can generate a work order and cangenerate a servicer or dealer invoice for the pool owner. The invoicecan provide a summary sheet for future upgrade recommendations forremaining upgrade opportunities.

FIG. 48 is a drawing illustrating another embodiment of the userinterface screen of the present disclosure. The user interface screenscan be modular and flexible and can be easily modified by a servicer orprogrammer to remove, swap, move, or modify the various columns. Forexample, additional columns can be included such as replacement partnumber 6212a, VPL (ea) 6212 b, VPL (ext'd) 6212 c, est'd labor (ext'd)6212 d, and utility rebate 6212 e. It should be noted that other typesof equipment including, but not limited to, filters and cleaners can beincluded in the user interface screen.

FIGS. 45-48 are merely example embodiments of a user interface screengenerated by the system of the present disclosure. As noted above, thescreens can be customizable to include any types of inputs or fields todisplay information helpful to a user. The system can also be programmedto generate a screen that can be customized by the servicer or the poolowner. The system can include a memory to store user screen preferencesof the pool owner and servicer and can automatically display thepreferred user interface layout for each user. The user interfacescreens can include recommendations for a plurality of devices or asingle device as described above. The user interface screens can includeany combination of devices in a pool or spa environment. For example,with respect to FIGS. 46-47 , only pumps are shown, but this can includeall the other types of devices in a pool or any combination of thosedevices.

It should be noted that the disclosure with respect to recommendingupgrades or replacement pool device with respect to FIGS. 43-47 can beused in conjunction with the disclosure with respect to FIGS. 33AD and33AE.

It should be noted that the databases that can be relied upon by thesystem of the present disclosure include a servicer database, autilities database, a manufacturer database (having dealer, consumer,equipment pad, and product information), and an equipment pad profiledatabase. These databases can be combined or separate.

FIG. 49 is a system diagram which illustrates a monitoring and controlsystem 7100 for monitoring and/or controlling pool/spa equipment 7102,according to the present disclosure. The system 7100 is able toaggregate information from a variety of sources (e.g., operational datafrom connected devices, sensor data, web data, historical trends, etc.),process that information (e.g., via machine learning algorithms), andusing the processed information, control the pool/spa equipment,preemptively address problems before they occur, and/or provide alertsif a problem does occur. The system 7100 can further providedocumentation of problems, provide suggested solutions to problems,identification of problems prior to a pool/spa service technician(“servicer”) arriving on-site, and identification of problem causation.The system 7100 is able to provide the aforementioned benefits utilizingcombinations of one or more of hardware (system controllers,smart/connected pool/spa equipment, sensors, etc.), applications (e.g.,smartphone applications, servicer systems, etc.), and cloud integration(e.g., central management/control, data storage, machinelearning/analytics, etc.). According to some aspects of the presentdisclosure, the system 7100 can identify an alert condition (e.g.,decibel level from pump microphone/sensor is exceeding historicallevels), determine if a problem exists (e.g., decibel levels from pumpindicative of shaft bearing failure within 30 days), provide a solutionto the problem (e.g., replace shaft bearing within 30 days), andgenerate a list of materials needed to implement to solution (e.g., onenew shaft bearing, one new shaft seal, two O-rings, shaft grease, etc.).The system 7100 can also determine where the materials can be located(e.g., in a servicer's monitored inventory, at a local distributor,online distributor, etc.), determine lead-times for the materials (e.g.,in inventory, available to ship in 2 days, available for pickup atdistributor, etc.), and order the materials if requested.

As shown if FIG. 49 , the monitoring and control system 7100 can includea pool/spa control system 7120 for controlling and communicating withthe pool/spa equipment 7102, a sensor hub 7122 in communication with aplurality of sensors 7140, an analytics system 7114, and a pool/spaservicer system 7124. The pool/spa equipment 7102 can include but is notlimited to a heating/cooling system 7132, a pump 7134, a filter 7136,and a pool/spa chemistry system 7138. The plurality of sensors can beconfigured to gather operational data related to the equipment 7102 aswill be discussed in greater detail hereinbelow.

The system 7100 is able to monitor and control smart and/or connecteddevices (e.g., devices which are capable of direct communication withthe system 7100 via a data connection) as well as legacy devices (e.g.,devices which not are capable of direct communication with the system7100 via a data connection). For example, as shown in FIG. 49 , aconnected device such as pump 7134 can provide operational data (e.g.,pump speed, water pressure, etc.) directly to the system 7100, and canbe controlled by the system 7100, by way of a data connection (e.g.,RS485, WiFi, Bluetooth, ZWave, Zigbee, etc.). However, a legacy devicesuch as heater 7132 may not include a communication bus, or may nototherwise be capable of communication with the system 7100 (e.g.,incompatible communication protocols between the heater 7132 and system7100). In this case, sensors 7140 are provided to monitor the operationof the heater 7132 and provide this information (e.g., water outlettemperature) to the system 7100 by way of sensor hub 7122, discussedherein. The system 7100 is able to control the heater 7132 via a smartrelay 7148, discussed herein, which communicates with the system 7100and regulates power provided to the heater 7132. Of course, the system7100 can monitor and control additional legacy devices in a similarfashion.

FIG. 50 is another diagram which illustrates additional aspects of thesensor hub 7122 and sensors 7140 of the monitoring and control system7100 of the present disclosure. As shown in FIG. 50 , and describedbelow, data gathered by sensors 7140 and sensor hub 7122 is used by thesystem 7100 to monitor various characteristics of the equipment 7102and/or the pool/spa environment.

For example, the heating/cooling system 7132 could be provided with aflood sensor 7140 a to determine if the heat exchanger is leaking sothat it can be replaced before heater is damaged. The heating/coolingsystem 7132 could also be provided with a heater pod 7140 b that caninclude multiple sensors (e.g., current clamping, vibration, flooding,thermostat voltage, etc.), as well as a thermostat relay, fordetermining if heat was called for but is not heating, heater powerloss, igniter current cycling with re-tries, low gas pressure, ignitionfailure, blower fan failure, heat run time and energy cost calculation,acting as a remote thermostat and heat shutoff, and providing alerts(e.g., head usage rules are violated). The heating/cooling system 7132could also be provided with an outlet temperature sensor 7140 c, of aninsulated wrap-on variety or similar, that can be used to determineheater efficiency loss due to moisture or a burner issue, that theheater is not firing, or an excessive output temperature caused by lowflowrate, shortening the lifespan of the heater.

The pump 7134 could be provided with a vacuum sensor 7140 d in its drainplug, the operational data from the vacuum sensor 7140 d, being used bythe system 7100 to determine whether a pump skimmer needs to be clearedand to detect low water below the skimmer. The vacuum sensor 7140 dcould also be used by the system 7100 to clear a loaded pool skimmer ormain drain. A flood sensor 7140 e can be provided, the operational datafrom the flood sensor 7140 e, being used by the system 7100 to determineshaft seal leakage, so that the seal can be replaced before the bearingsare damaged, or to determine that there is a flooded pool pad, so thatthe pump can be shut off, thereby avoiding emptying of the pool (andpotential displacement relative to the water table). Motor temperaturesensor 7140 f and vibration sensor 7141 f can also be provided, theoperational data from the motor temperature sensor 7140 f and vibrationsensor 7141 f, being used by the system 7100 to determine if there is ablocked fan inlet (e.g., by leaves or improper installation), or abroken or fouled fan blade (e.g., via bearing noise).

A combination sensor 7140 h including salinity, water temperature, andflow sensing can also be provided, the operational data from thecombination sensor 7140 h being used by the system 7100 to determine theinlet water temperature for remote heat control, low salinity for saltchlorination control, insufficient flow for heating control, whetherbackwashing is necessary, whether the pump is running dry, the poolturnover rate or filter schedule assessment, and whether there is anenergy savings opportunity by converting a single-speed pump to avariable-speed pump (“VSP”). PH and oxidation reduction potential(“ORP”) sensors 7140 i can also be provided, the operational data fromthe PH and ORP sensors 7140 i, being used by the system 7100 to managepH and chlorine dose by the pool/spa chemistry system 7138. In additionto, or in place of, the pH and ORP sensors 7140 i, the system 7100 caninclude water sample mailers 7146. The water sample mailers 7146 containsample vials of pool water which can be tested by a service provider.For example, the water samples can be provided with prepaid postage, canbe pre-addressed, and can be bar-coded so that a pool owner can easilysend a sample of pool water to a servicer if one is requested by theservicer, or if the pool owner required that the water be tested foranother reason. The system 7100 could further include smart test stripsand the system 7100 could process the data from the smart test stripsand suggest an appropriate water treatment.

Still with respect to FIG. 50 , according to some aspects of the presentdisclosure, the sensor hub 7122 could be provided with integral rain,ambient light, humidity, and air temperature sensors 7140 j. Accordingto further aspects of the present disclosure, the sensor hub 7122 couldalso be provided with an integrated jug feeder system 7142, including aperistaltic pump that draws from a container (e.g., jug) of acid, theintegrated jug feeder system 7142 being used by the system 7100 tocontrol the pH of the pool or spa water. As an alternative to, or incombination with, the integrated jug feeder system 7142, the system 7100can include acid and/or chlorine feed tanks 7144 that include levelsensing capabilities that provide additional operational data to themonitoring and control system 7100, thereby further enhancing automationcapabilities. According to still further aspects of the presentdisclosure, the sensor hub 7122 can include a memory, the memory beingused for local storage of acid feeding, chemical dosing, and filteringschedules. The schedules can be manually updated locally, orautomatically updated based on algorithms processed by the analyticssystem 7114.

As discussed above, the system 7100 is able to aggregate informationfrom a variety of sources, process that information, and using theprocessed information, control the pool/spa equipment, preemptivelyaddress problems before they occur, and/or provide alerts if a problemdoes occur. For example, as shown in FIG. 51 , the analytics system 7114of the system 7100 can be in communication with and/or receiveinformation from a historical database 7150, connected data sources7152, and sensor hub data 7154. The historical database includes acomprehensive data set of historical information (e.g., power, noise,environmental data, water levels, size of plumbing, jets, measured head,failures, normal power draw for a pump, power consumption changes in themonths preceding a failure, normal power draw for a chlorination cell,chlorination cell power draw preceding a failure, chlorination cellpower draw preceding a cleaning, normal gas consumption of a heater, gasconsumption of a heater preceding a failure, gas consumption of a heaterpreceding a service, etc.), including failures and the conditionspreceding failures, which is analyzed (e.g., using machine learning) bythe system 7100 to predict failures before they occur and suggestsolutions. As the information contained historical database grows, thepredictions become increasingly accurate. The historical database 7150can include historical data gathered from connected pool/spa devices7102, data recorded by sensors 7140, as well as additional historicalinformation gathered and recorded by the system 7100. In addition to theinformation collected from a single pool/spa environment (e.g., apool/spa located at single residence), the historical database 7150 canalso contain information related to a plurality of pool/spa environments(e.g., pool/spas located at a plurality of residences or commerciallocations distributed across a wide geographic area).

The connected data sources 7152 can include up-to-date informationretrieved from the Internet, current operational data from one or moreconnected pool/spa devices 7102, as well as any other currentlyavailable information. For example, the connected data sources 7152 caninclude, but are not limited to, information related to the time anddate, pool mode, pool/spa/spill, weather, air temperature, pooltemperature, ORP level, pH level, salt level, water level, sunlight/UVindex, approaching storms, wind direction, rainfall, utility costs,utility rebates, utility time of use rates, gas costs, and the like. Inaddition to being provided to the analytics system 7114, informationfrom the connected data sources 7152 can also be saved to the historicaldatabase 7150 for later retrieval and use by the system 7100.

The sensor hub data 7154 can include current information that isreceived from the sensors 7140 in communication with the sensor hub7122. For example, the sensor hub data 7154 can include, but is notlimited to, information related to wind speed, wind direction, ambientlight, water turbidity, chlorine level, liquid feed tank level, waterhardness, water mix ratio, phosphate level, stray current, pool coverposition (e.g., open or closed), candela and/or lumen levels (e.g., forlighting), pool chemistry (e.g., pH, TA, TH, CyA, CL2), and the like, aswell as other information received from storm sensors, water sensors,water leak sensors, water fills sensing (e.g., leaks), evaporationsensing and algorithm, vibration sensors, heat sensors, power linesensors (e.g., power digital imprint), noise sensors, music sensors,rain sensors, humidity sensors, and motion sensors (both in and out ofwater). In addition to being provided to the analytics system 7114, thesensor hub data 7154 can also be saved to the historical database 7150for later retrieval and use by the system 7100.

The analytics system 7114 processes the information from the historicaldatabase 7150, connected data sources 7152, and sensor hub data 7154 todetermine information related to the system 7100 that may not bedetectable, may be inconvenient, or may be cost-prohibitive utilizingtraditional sensing means. For example, a sensor may not be commerciallyavailable to determine a shaft seal failure. Further, it could bebeneficial to a pool owner or servicer to predict a shaft seal failurebefore it occurs.

Accordingly, the system 7100 of the present disclosure can generatedetermined information for the pool/spa equipment 7102. For example, thesystem 7100 can determine information related to the pump 7134 such as,but not limited to, shaft seals, drive failures, communication failures,seal failures, motor failures, bearing failure/noise, basket level(e.g., low, med, high, etc.), skimmer level (e.g., low, med, high,etc.), filter status (e.g., pressure increasing, time to backwash,etc.), blocked air inlet, fan blade broken, impeller broken or damaged,pump running dry, pool turnover rate, pump run time and energycalculations, pump run time and turnover calculations and energysuggestions, inefficiencies in energy usage because of a problem, andthe like.

The system 7100 can determine information related to the heater 7132such as, but not limited to, a board failure, communication failure,ignition failure, igniter cycling, heater power loss, whether the heateris calling for heat but not heating, blower fan failed, a gas leak,kinked line, combustion failure, low gas pressure, no gas available, awater leak, heater run time and energy calculation, heating expense thatexceed the pool owner's historical heating trends, and the like. Oneexample of the above is that a flood sensor can be used to identify thata heat exchanger is leaking.

The system 7100 can determine information related to a lighting system(discussed herein) such as, but not limited to, a bulb that is about toburn out, a bulb that is burnt out, LEDs that have failed, that the LEDlights are leaking, a low voltage (voltage drop) condition, that theLEDs are dimming from hours of operation, that the lights have been ontoo long, or the like.

The system 7100 can determine information related to a filter system7136 such as, but not limited to, that it is time to backwash or cleanelements, the DE or sand is low, there is leak in the filter, a plug isnot plugged in, a gasket seal is not correct, a belly band is not tightenough, there is a leak in an air valve, there is a crack in shell, andthe like.

The system 7100 can determine information related to the chemistrysystem 7136 such as, but not limited to, the salt level (e.g., saltneeded or excess), board damage, the chlorinator cell is dirty, thechlorinator cell has calcification, the probe is dirty or broken, theprobe is out of calibration, that it is time to replace the chlorinatorcell, it is time to replace flow switch, the pool needs chlorine, thepool needs acid, the UV lamp brightness has decreased from its initiallevel, the UV lamp is damaged, the UV lamp needs to be replaced, thefeed tank levels for acid or liquid chlorine, that too much acid orchlorine is being used based on historical trends; identification ofphosphates, that the pool water is out of chemical balance, whatchemicals are needed and how much of them is needed to restore balance,and the like.

The system 7100 can determine information related to a pool/spa cleanersystem such as, but not limited to, that it is time to empty debris,identification of debris (in or around) the pool/spa, that a drive isfailing, that bearings need to be repaired, or the like.

FIG. 52 is a flowchart illustrating processing steps carried out by thesystem 7100 of the present disclosure to preemptively address anequipment failure before it occurs. As discussed above the system 7100could monitor a plurality of pumps 7134 (e.g., 100 pumps at varioussites dispersed in a geographical region). The system can 7100 detect adeviation or change in bearing sound (e.g., increased decibels oraltered sound profile) and/or a change in resistance of the pump motor(e.g., increased power draw) from historical trends. The altered soundand resistance data can be compared with information contained in thehistorical database 7150 to determine the cause of the deviation (e.g.,a failing bearing) and a predicted timeline (e.g., the bearing will failin 30 days). For example, in step 7300 the system 7100 receivesoperational data from the sensor hub controller (e.g., bearing sounddata, motor resistance data, power draw data, etc.) and then proceeds tostep 7302, where the system 7100 processes the operational data todetermine the presence of an alert condition (e.g., the pump bearingswill fail in 30 days). The system 7100 then proceeds to step 7304, wherea determination is made as to the presence of an alert condition. If anegative determination is made in step 7304, the system 7100 returns tostep 7300. If the system 7100 determines that there is an alertcondition, the owner/customer can be alerted (e.g., via email,SMS/text/iMessage, pop-up notification, etc.) to the condition (e.g.,pump failure), a servicer can be alerted that his or her customer's pumpis going to fail, and replacement parts can be automatically ordered anddelivered to the servicer or directly to the customer location, allbefore any adverse condition occurs (e.g., pump failure). The system7100 could further include an application installed on a home owner'ssmart device (e.g., smartphone) 7118 and on a servicer's smart device7104 (see FIG. 49 ) and notifications/alerts can be transmitted via theapplication, discussed in greater detail below. For example, if apositive determination is made in step 7304, the system 7100 proceeds tostep 7306 where a alert condition is transmitted to a servicer (e.g.,Customer #1234 pump bearings will fail in 30 days). In step 7308 theservicer addresses the alert condition (e.g., the bearings are replacedprior to failure/predicted failure) and the system 7100 returns to step7300. Optionally, in step 7310, the system 7100 could transmit an alertcondition to the homeowner (e.g., pump bearings will fail in 30 days)before proceeding to step 7308. In further optional step 7312, thesystem 7100 could automatically order replacement parts (e.g., newbearings for pump arrive at customer's location prior to servicerarrival) before proceeding to step 7308.

FIG. 53 is a flowchart illustrating processing steps carried out by thesystem 7100 of the present disclosure to alert a homeowner when currentenergy usage exceeds historical trends (e.g., the variable speed pump“VSP” has been running on high for 24 hours, the heater has been runningfor three days at 104 degrees Fahrenheit, etc.). The system 7100 cantransmit an alert to a homeowner (or servicer) when a parameter is notrunning within specification or a parameter is not consistent withhistorical trends (e.g., too much heating turnover, power consumption,chemical dispensing, water refilling, dropped packets, etc.). Forexample, in step 7314, the system 7100 receives operational data fromthe sensor hub (e.g., energy usage data, pump speed data, heatertemperature and runtime data, etc.) and then proceeds to step 7316,where the system 7100 retrieves historical operational data from thememory (e.g., historical database 7150). In step 7318, the system 7100determines trends for the historical data and then in step 73120, thesystem 7100 compares the current operational data with the historicaldata trends. In step 7322, the system 7100 determined whether thecurrent operational data is consistent with the historical trends. If apositive determination is made in step 7322, the system returns to step7314. If a negative determination is made in step 7322, the systemproceeds to step 7324 where an alert condition (e.g., pump has beenrunning at high speed for 24 hours) is transmitted to the homeowner(e.g., via an application running on smart device 7118). The system 7100then returns to step 7314.

FIG. 54A is a graphical representation of a historical trend for anormal heat cycle for heater 7132, FIG. 54B is a graphicalrepresentation of a heat cycle that deviates for the historical trendshown in FIG. 54A, and FIG. 55 is a flowchart illustrating processingsteps carried out by the system 7100 to restore the heat cycle to normaloperation. As shown in FIG. 54A, when the heater initially fires, theoutput water temperature of the heater quickly rises while the inputwater temperature only gradually increases (e.g., lags behind) due tothe large volume of the pool/spa. Both the output and input watertemperatures of the heater continue to increase until the outputtemperature reaches a predetermined setpoint. At this point, the heaterstops firing and the output temperature eventually reaches equilibriumwith the input temperature.

As shown in FIG. 54B. if the heater fails to fire, or the heater iscontinuously cycling (resulting in a reduced output), the system 7100 isable to determine that the heater is failing to fire or that it iscycling by comparing the current output water temperature to thehistorical trend discussed in connection with FIG. 54A and determiningthat the output water temperature is below the historical trend.Similarly, the system 7100 can determine if the heater has erroneouslycontinued to fire by comparing the current output water temperature tothe historical trend discussed in connection with FIG. 54A anddetermining that the output water temperature is above the historicaltrend.

FIG. 55 is a flowchart illustrating processing steps carried out by thesystem 7100 in connection with FIGS. 55A and 55B. In step 7326 thesystem 7100 is initialized, in step 7328 the system 7100 determineswhether heating is desired, in step 7330 the system 7100 determineswhether the thermostat voltage is acceptable, and in step 7332 thesystem determines if the water is cold. If a positive determination ismade in step 7332, the system 7100 proceeds to step 7334 where thesystem 7100 determines if the water has been flowing for over a minute.If a positive determination is made in step 7334, the system proceeds tostep 7336, where the system 7100 determines whether the water is flowingfast enough (e.g., operational data from a flow sensor is above apredetermined setpoint). If a positive determination is made in step7336, the system 7100 transmits an instruction to start the heater instep 7338. In step 7340, the system 7100 determines whether the heateris operating like it should (e.g., by comparing the current output watertemperature to the historical trend discussed in connection with FIG.55A). If a positive determination is made in step 7340, the system 7100proceeds to step 7342 where the a determination is made as to whetherthe water has reached a predetermined setpoint. If a positivedetermination is made in step 7342, the system 7100 returns to step7332. If a negative determination is made in step 7342, the system 7100proceeds to step 7344, where a determination is made as to whether theheater daily run time house rules have been exceeded. If a positivedetermination is made in step 7344, the system 7100 proceeds to step7346, where the heater is disabled until the next day and a flag issaved to memory (e.g., historical database 7150). Once the next daybegins (e.g., after midnight) the system 7100 proceeds to step 7348where an instruction is transmitted to the heater to restore the heatersetpoint to a minimum heater setpoint value and then the system 7100returns to step 7332. If the system 7100 determines in step 7340 thatthe heater is cycling, the system 7100 proceeds to step 7350 where aheater limping cycling alarm is transmitted (e.g., to the homeowner orservicer). If the system 7100 determines in step 7340 that the heater isnot running, the system 7100 proceeds to step 7352, where the system7100 determines whether four attempts have occurred during an excessiverestart alarm. If a positive determination is made in step 7352, thesystem proceeds to step 7354 where an alarm lockout is put in place(e.g., heater service required). If a negative determination is made instep 7352, the system 7100 proceeds to step 7356 where a heaterexcessive restart alarm is transmitted (e.g., no lockout is put inplace, but the alarm must be cleared). The system 7100 then proceeds tostep 7358, where the system 7100 determines if the heater has restartedafter five minutes of restarting. If a positive determination is made instep 7358, the system 7100 proceeds to step 7360, where the systeminitiates a timer (e.g., one hour) and after expiration of the timer,attempts to restart the heater. The system 7100 then returns to step7332. It is contemplated by the present disclosure that the system 7100can be configured to only transmit an alert condition when a significantchange from historical trends is detected. This can be accomplishedusing alert thresholds that are established using hysteresis modeling,thereby preventing erroneous alerts due to signal jitter or the like.

FIG. 56 is a flowchart illustrating processing steps carried out by thesystem 7100 to automatically grant a servicer access to the system toperform authorized work. The system 7100 can determine that a serviceris authorized to service a particular account. The system 7100 couldidentify the servicer by way of the servicer's smart device 7104 that isregistered to the account, by an individually coded key fob, a locationpod, or other identification/authorization systems. In one example, theservicer can enter a pool/spa environment, the system 7100 can identifythe servicer and that he or she is authorized to perform work and thenthe system 7100 initiates a servicer mode and alerts the homeowner thatthe servicer has arrived at the site. Once the servicer has completedthe work, the servicer leaves the site and the system 7100 resumesnormal operation. For example, as shown in FIG. 56 , in step 7362 theservicer arrives at the pool/spa location and in step 7364, the system7100 identifies the servicer (e.g., by access code, RFID device,geolocation, etc.). In step 7366, the system 7100 enters a service mode(e.g., transmits an instruction to the pool/spa devices to ceaseoperation). In steep 7368, the system 7100 transmits an alert to thecustomer (e.g., “the servicer has arrived”). In step 7370, the servicerperforms authorized work (e.g., cleans the filter baskets) and leavesthe pool/spa location. In step 7372, the system 7100 recognizes that theservicer has left the pool/spa location (e.g., by access code, RFIDdevice, geolocation, etc.). Finally, in step 7374, the system 7100returns to normal operation mode (e.g., transmits an instruction to thepool/spa devices to resume normal operation). Optionally, in step 7386,the system 7100 can save the details of the service call (e.g., date andtime of service, work performed, fees, etc.) to memory (e.g., servicerdatabase 7128 or servicer system 7124).

As discussed herein, geolocation services running on the servicer'ssmart device 7104 can be utilized by the system 7100 to determine if theservicer is at the site and register his or her presence in an accounthistory. The location services can also be utilized by the system 7100to automatically update the application on the homeowner's smart device7118 and notify the homeowner that the servicer is present, has left,performed the expected work, etc. Additionally, as discussed in greaterdetail below, the application can also display information such as waterreadings (if they were taken by the servicer) and those readings canalso be stored to memory (e.g., servicer database 7128, historicaldatabase 7150, or servicer system 7124). Further, the application canalso provide real-time updates as the work is performed by the servicer,the reason for the work, and the costs. All of this information can bestored by the system 7100 as data points for future reference andanalysis (e.g., machine learning) by the system 7100.

According to some aspects of the present disclosure, the system 7100 canalert the servicer to alert conditions (that the servicer may not havebeen aware of before arrival) so that he or she can address the alertconditions while on-site. If there is a predicted failure with a pieceof pool/spa equipment, the servicer can receive an alert via anapplication on the servicer's smart device 7104. The servicer can thenchoose to transmit that alert to the homeowner via a similar applicationon the homeowner's smart device 7118. The servicer can also requestapproval (e.g. with a countdown timer for the current service call orthe next) to address the alert within the same application. The system7100 can also document that the servicer was on site, that an alert waspresent, that the homeowner was notified of the alert, and thehomeowner's response to the request to address the alert (if one wasgiven). For example, as shown in FIG. 56 , in optional step 7376, thesystem 7100 determines if a new alert condition is present. If anegative determination is made in step 7376, the system 7100 proceeds tostep 7366. If a positive determination is made in step 7376, the system7100 proceeds to step 7378, where an alert condition is transmitted tothe servicer (e.g., Customer #1234 pump bearings will fail in 30 days).In step 7380, the servicer can choose to request authorization toaddress the alert condition. If the servicer chooses to requestauthorization to address the alert condition, in step 7382, the system7100 transmits a work authorization request to the homeowner (e.g., viasmartphone application, email, etc.) and in step 7384, the system 7100saves the homeowner's response (or lack thereof) to memory (e.g.,servicer database 7128 or servicer system 7124). The system 7100 thenproceeds to step 7370. According to some embodiments, the system 7100can also automatically generate a returned material authorization(“RMA”) and warranty claim submission based on the work performed by theservicer (e.g., pump replacement), information recorded by the servicervia application 7160 (e.g., detailed explanation of reason for RMA orfailure mode of part) discussed herein, and/or information saved toservicer database 7128 or servicer system 7124 (e.g., customerinformation, time and date, etc.).

FIG. 57 is a flowchart illustrating processing steps carried out by thesystem 7100 to automatically grant a servicer WiFi access to the systemto perform authorized work. When a servicer arrives on-site, the system7100 can enable a WiFi access point that grants the servicer directaccess to the system 7100 without having to log in to the account,homeowner's WiFi, or the cloud. For example, in step 7386, the servicerarrives at the pool/spa location. In step 7388, the system 7100identifies the servicer (e.g., by access code, RFID device, geolocation,etc.). In step 7390 the system 7100 activates a WiFi access point and instep 7392, the system 7100 establishes a WiFi connection with theservicer's smart device. in step 7394 the servicer performs theauthorized work (e.g., modifying the controller) and then leaves thepool/spa location. Finally, in step 7396, the system 7100 deactivatesthe WiFi access point.

FIGS. 58-67 illustrate user interface screens of application 7160 thatare generated by the system 7100. The application can be run on thehomeowner's smart device 7118, the servicer's smart device 7104, theservicer system 7124, or any other device capable of displaying theapplication and accepting user input. FIG. 58 illustrates an initialuser interface screen generated by the system 7100. As shown, theinitial user interface screen can include a portion 7162 for displayingcurrent weather conditions. Additionally, a user can click on portion7162 to display an extended weather forecast. A portion 7164 of the userinterface can also be used to display current promotional offers to auser. Additional portions of the user interface can also be provided forinformation related to, and interaction with, one or more of thepool/spa devices discussed herein. For example, portion 7166 can displaycurrent heating settings. If portion 7166 is clicked, the user canmodify the heater settings (e.g., on/off or variably via a GUI slider orwheel to increase or decrease the temperature). If maximum and minimumtemperature setpoint values have been established by an administrator ofthe system 7100, a particular user can be prevented from exceeding thesevalues via the application 7160. According to some aspects of thepresent disclosure, portion 7166 can also provide additionalfunctionality passed on the number of times it is clicked. For example,a first click could provide access to heater on/off control and manualheat settings, a second click could access heating rules and alarmsetup, a third click could access basic heat settings, smart heatsettings (e.g., least costly heating option for a desired goal) andheating history, a fourth click could provide access to the headschedule settings, and a fifth click could cause the system 7100 todisplay a diagnostic screen.

Portion 7168 can be used to display information related to a filtrationschedule (e.g., showing a countdown to a next filtration event).According to some aspects of the present disclosure, as discussedherein, the system 7100 could store setpoints for a water turnovertarget, and periods when filtration is not desired (e.g., do not filterstart and end times). Portion 7168 could display the status of the pump(e.g., on/off), the measured water turnovers from the previous 24-hourperiod, the next filter start or stop time, and provide a boost button.

The application 7160 can also be used by the system 7100 to displayalerts to a user. For example portion 7170 can display the health statusof a pool filter (e.g., that a filter is clean or that a backwash isnecessary). If an alert is present, service is needed, a response isrequired, or the like, the application 7160 can display any of theportions in a color which will draw the user's attention. For example,if the filter is clean and no action is necessary, portion 7170 can bedisplayed in a blue, or another color, whereas if the filter needs to becleaned, portion 7170 can be displayed in yellow or another color thatwill draw the user's attention.

Similarly, portion 7172 can be used to display information related towater quality and can be displayed in a first color (e.g., blue) if thewater quality is good and displayed in a second color (e.g., yellow) ifthe water is unsafe, needs testing, or otherwise requires attention. Ifwater quality is not being directly monitored by the system 7100 (e.g.,via pH and ORP sensors) the system 7100 can determine when the waterneeds to be tested and can alert the user to provide photographs ofsmart test strips which can then be analyzed by a vision system(discussed herein) in communication with the system 7100 to determinethe water quality and display the results. Alternatively, portion 7172can provide access to a manual test entry screen.

According to some aspects of the present disclosure, certain userinterface screens of the application 7160 are only displayed based onwho is using the application (e.g., homeowner versus servicer). Forexample, if a user is logged into the application 7160 as a servicer,clicking on portion 7172, will display a service call log user interfacescreen, shown in FIG. 59 . As shown, the service call log user interfacescreen can display scheduled maintenance intervals and fields for theservicer to record information such as water testing results and generalnotes related to the customer account. According to some aspects of thepresent disclosure, the application 7160 can respond to voice commandsvia voice assistance products (e.g., Amazon Alexa, Google Assistant,Microsoft Cortana, Apple's Ski, etc.), allowing servicers to access andperform work at customer sites without needing to physically manipulatea graphical user interface.

Returning to FIG. 58 , portion 7174 can display available upgrades andenergy saving advice, discussed hereinabove with respect to FIGS. 43-48. If a user clicks on portion 7174 the system 7100 generates a userinterface screen displaying further information on the upgrades and/orenergy savings advice, as shown in FIG. 60 . The user interface screenshown in FIG. 60 can include a first portion 7186 that containsavailable upgrades and a second portion 7188 that displays upgrades thatthe user has declined or is not interested in. Clicking on an item orupgrade displayed on the user interface screen of FIG. 60 will cause thesystem 7100 to generates another user interface screen, shown in FIG. 61, displaying additional information and resources related to theupgrade. For example, through the user interface screen of FIG. 61 , auser can purchase the upgrade from a distributor or servicer (see FIG.62 ), move the upgrade to the user's shopping list (see FIG. 64 ),request a quotation, request an in-person sales call, click on a link tovisit a manufacturer's website (see FIG. 63 ), set a reminder related tothe upgrade, or indicate that he or she is not interested in the offer.

Alternatively, as shown in FIG. 71 , if a user clicks on portion 7174 ofFIG. 58 , the system 7100 can generate another user interface screendisplaying visual representations of pool/spa equipment that havealready been upgraded as well as pool/spa equipment upgrades that areavailable for installation (e.g., as determined by the system 7100,discussed above). For example, the user interface screen shown in FIG.71 can include portions 7236 that include visual representations (e.g.,an image or rendering of a variable speed pump, filter, smart valve,lighting system, etc.) of pool/spa equipment that have already beenupgraded and portions 7238 that include visual representations (e.g.,image or rendering of a control system, chlorination system, etc.) ofavailable pool/spa equipment upgrades. Clicking on one of the portions7236 or 7238 can cause the application 7160 to display additionalinformation related to the piece of pool/spa equipment associated withthe visual representation. For example, clicking on a portion 7236showing an image of an installed variable speed pump can cause theapplication 7160 to display the status of the variable speed pump orprovide the option to alter parameters, whereas clicking on a portion7238 can cause the application 7160 to display information such ascomponent availability, component cost, and installation options (e.g.,request a quotation from an installer). According to further aspects ofthe present disclosure, the portions 7236 and 7238 of the user interfacescreen shown in FIG. 71 can be displayed in the form of a puzzle.Further, the portions 7236 and 7238 of the user interface screen shownin FIG. 71 can together form a complete puzzle based on the number ofavailable upgrades determined by the system 7100. For example, if thesystem 7100 determines that two upgrades are available and two upgradeswere already installed, the application 7160 will display the puzzle ashaving four pieces. Similarly, if the system 7100 determines that twoupgrades are available and three upgrades were already installed, theapplication 7160 will display the puzzle as having five pieces. Furtherstill, the application 7160 can display portions 7238 as faded images,visually signaling to the user that additional equipment upgrades arenecessary to “complete” the puzzle.

Returning to FIG. 58 , portion 7176 can display a link to a user'sshopping list. Clicking on portion 7176 causes the system 7100 togenerate a user interface screen, as shown in FIG. 64 . The userinterface screen shown in FIG. 64 can include a first portion 7190 thatcontains a list of items already selected by the user for purchase, anda second portion 7192 that includes a list of recently viewed orrecommended items that the user may want to add to the list of itemsselected for purchase, displayed in the first portion 7190. According tosome aspects of the present disclosure, the list of items in the firstportion 7190 could include checkboxes that are filled and the list inthe second portion 7192 could include check boxes that are not filled.Unchecking a checkbox in the first portion 7190 can move an item to thesecond portion 7192. Similarly, checking a checkbox of an item in thesecond portion 7192 can move the item to the first portion 7190.

Returning to FIG. 58 , portion 7178 can display a link to a learning andtroubleshooting area, such as for example, a manufacturer's web-basedsupport center (see FIG. 66 ). Similarly, portion 7180 can display alink to a service and support area, such as for example, a designatedpool servicer's portal (see FIG. 65A) where the user can schedule anappointment for service (see FIG. 65B) or initiate direct communication(e.g., instant messaging, email, voice, etc.) with the servicer. Portion7182 of the application 7160 can display a link to a user interfacescreen that provides information related to a user's pool or spainstallation, shown in FIG. 67 . For example, the user interface screenof FIG. 67 can include photographs of the homeowner's pool/spa equipment(e.g., picture of a pump, heater nameplate, filter, booster pump,blower, lights, GVA, etc.). These photographs could be stored by thesystem 7100 or could be stored at another location (e.g., a photographstorage website such as Google Drive, iCloud, etc.) in communicationwith the system 7100. The photographs could be uploaded by the homeowneror the servicer and according to some aspects of the present disclosure,the servicer can be required to populate photographs to the system 7100when performing maintenance or the like. According to some aspects ofthe present disclosure, a servicer can access the photos remotely,enabling the servicer to confirm that he or she has all required toolsand equipment for a particular job prior to arrival on-site. A portion7184 could display a feedback link to a survey (e.g., survey monkey)where the user can review the servicer and the work performed.

The application 7160 can provide linking and/or communication betweenhomeowners and servicers. For example, the application 7160 can link aservicer to a particular homeowner as a servicer of record and rules ofengagement and support (e.g., automatic approval up to a certainmonetary value, or automatic approval for preventative maintenance) canbe established and saved to a homeowner profile. The system 7100 cangenerate a user interface screen including a list of available servicers(e.g., servicer systems 7124) from which the homeowner can select aservicer of record. The servicer of record could have access to all ofthe information from a particular site that is collected by system 7100,whereas a servicer that is not of record could only have access to asubset of that information.

The homeowner can schedule a service call through the application 7160or request a service call the next time a servicer is in theneighborhood (e.g., using geofencing surrounding the homeowner'slocation and geolocation services on the a servicer smart device orvehicle). For example, when a homeowner needs to refill pool/spachemicals, the homeowner can request a refill the next time that theservicer of record is in the neighborhood, or the homeowner can requestan immediate refill to all servicers in the area. The homeowner requestcan be transmitted to broadcast system 7126 in communication with thesystem 7100 (see FIG. 49 ). The broadcast system 7126 can further be incommunication with one or more servicer smart devices 7104 or servicersystems 7124. Servicer can monitor the broadcast system 7126 and canaccept a service request using the application 7160. Once a servicer hasaccepted the homeowner's request, the request can be cleared from thebroadcast system 7126.

Alternatively, the system 7100 can automatically request refills for thehomeowner based on the current level of the chemicals (e.g., if sensorsin communication with the system 7100 are utilized to monitor thelevels) and/or based on historical trends (e.g., on average thehomeowner requests a refill every X days, or X % of the chemicals areconsumed per day). The application 7160 can also generate a userinterface screen that provides the homeowner with a map of ageographical area that includes the homeowner's position, one or moreservicers' positions relative to the homeowner, and estimated time ofarrival and route tracking if a service appointment has been requestedby the homeowner and accepted by a servicer.

The application 7160 can also provide a servicer with the ability toprovide a quotation to a homeowner, request approval to complete thequoted work, view and record the response, and provide an invoicewithout leaving the confines of the application 7160. Further, thesystem 7100 can generate quotations for the servicer (that he or she canthen directly submit to the homeowner for approval) for predicted orpreventative maintenance of equipment (based on the installed pool/spaequipment and historical maintenance data) or for service in the eventof a problem with a piece of equipment. For example, the application7160 can include a user interface screen that presents a quotation orcontract for the homeowner's approval, such as a contract to do simpleor specific work without requiring a quote or prior approval.

The application 7160 can also include dashboard, or summary screen. Thesummary screen can be manually generated by the servicer, automaticallygenerated by the system 7100 on a periodic bases (e.g., monthly), orcontinuously updated by the system 7100 in real-time. For example, thesummary screen can include energy usage, energy savings, energy savingssuggestions, services to be reviewed or provided, periodic servicesummaries (e.g., weekly, monthly, seasonal, yearly, etc.), periodicalert summaries (e.g., weekly, monthly, seasonal, yearly, etc.), andservices or energy costs.

As shown in FIG. 72 , the application 7160 can also generate a series ofuser interface screens for providing customized alerts to a user basedon activities specified by the user, current weather data, andforecasted weather data. For example, a first user interface screen 7240can include a portion 7246 for displaying current weather conditions(e.g., temperature, cloud cover, wind speed, humidity, etc.), a portion7248 for displaying a list of specified preferred activities (e.g.,swimming, entertaining, sunbathing, gardening, walking, etc.), and aportion 7250 for displaying customized recommendations (e.g., “Highwinds tomorrow, take furniture in after dinner”). The list of specifiedpreferred activities can include indicia for indicating whether thecurrent weather conditions are appropriate for a specific activity. Forexample, if a the user specifies that swimming is appropriate betweentemperatures of 75 and 95 degrees and the current temperature is 86degrees, the application 7160 will indicate that swimming is appropriateat present.

The application 7160 can also display additional user interface screensbased on forecasted weather conditions. For example, if a user swipesleft on user interface screen 7240, the application will advance to userinterface screen 7242, which displays the forecasted weather conditionsfor the next day. It is contemplated by the present disclosure that theapplication 7160 can display any number of user interface screens forfuture dates, the only limiting factor being the availability offorecasted weather conditions (e.g., weather forecasts, almanacs, etc.).For example, if the current date is Friday, March 4, swiping left onuser interface screen 7240, will cause the application 7160 to displayuser interface screen 7242 including information for Saturday, March 5.Similar to user interface screen 7240, user interface screen 7242 caninclude a portion 7252 for displaying the date and forecasted weatherconditions (e.g., temperature, cloud cover, wind speed, humidity, etc.),a portion 7254 for displaying a list of specified preferred activities(e.g., swimming, entertaining, sunbathing, gardening, walking, etc.),and a portion 7256 for displaying customized recommendations (e.g.,“High winds tomorrow, take furniture in after dinner”). The list ofspecified preferred activities can include indicia for indicatingwhether the forecasted weather conditions will be appropriate for aspecific activity. For example, if a the user specifies that swimming isappropriate between temperatures of 75 and 95 degrees and the forecastedtemperature is 72 degrees, the application 7160 will indicate thatswimming is not appropriate at present.

The user interface screens 7240 and 7242 shown in FIG. 72 can alsoinclude a portion 7258 for providing the user access to a user interfaceconfiguration screen 7244, for example by clicking thereon. As shown,the configuration screen 7244 can include a portion 7260 for displayinga list of common activities (e.g., swimming, entertaining, sunbathing,gardening, walking, sailing, geocaching, bungee jumping, clam digging,mushroom hunting, etc.) from which the user can select his or herpreferred activities (e.g., swimming, entertaining, sunbathing,gardening, walking, etc.). Selecting a preferred activity can cause theapplication 7160 to display a portion 7262 for specifying appropriateconditions for the preferred activity. For example, if the user selectssunbathing as a preferred activity, portion 7262 can be used by the userto specify the air temperature (e.g., 70-95 degrees), water temperature(e.g., any/all), sun (e.g., full/no cloud cover), wind speed (e.g.,moderate), and humidity (e.g., any/all) for which sunbathing isappropriate. The system 7100 can compare the user specified conditionsfor each activity against the current or forecasted weather conditionsto determine whether the preferred activities displayed in portions 7248and 7254 suitable. The user interface configuration screen 7244 can alsoinclude a portion 7264 for allowing the user to add an activity to thelist of common activities displayed in portion 7260. For example, byclicking on portion 7264, the user could add “running” to the list ofcommon activities and then access portion 7264 to specify the desiredconditions therefor.

As shown in FIG. 68 , the system 7100 can also include a servicerdashboard 7200. The servicer dashboard 7200 is an application includinga graphical user interface generated by the system 7100 and can beinstalled on, for example, the servicer system 7124 or the servicer'ssmart device 7104. As shown in FIG. 68 , the dashboard 7200 can identifythe servicer's accounts (e.g., where the servicer has previouslyperformed work or is the servicer of record) 7208 within a specifiedgeographical area, prospective accounts 7210, and locations 7212 wherehomeowners have expressed no interest in pool/spa services. Thedashboard 7200 can include a graphical user interface portion 7202 forproviding an overview of the status of each of the servicer's accounts(e.g., healthy pools, impaired pools (low chemicals, system checkneeded, replace component, etc.), pools that are down, poolsexperiencing problems with communications, past due invoices, etc.). Forexample, the dashboard 7200 can show that a particular system at acustomer site is communicating with the dashboard 7200, that the systemis up to date (firmware), the last time a servicer visited a site, andthe health of a system by category (e.g., controls, chemistry, pump,heater, filter, lights, cleaner, etc.).

User interface 7202 can also show requests from customers, messages fromcustomers, forum posts made by customers, as well as additionalinformation related to the servicer's accounts. The dashboard 7200 canalso include a graphical user interface portion 7204 showing prospectiveopportunities for a servicer. For example, portion 7204 can identifyequipment needs at the servicer's accounts, or identify locations wherethe system 7100 has not been installed. The dashboard 7200, as well asthe application 7160, can also receive notifications (e.g., push,pop-up, etc.) when the system 7100 determines that a servicer is inclose proximity to a prospective opportunity (e.g., a location where thesystem 7100 has not been installed, a location where equipment needs tobe replaced, etc.) or a location where the system 7100 has determinedthat the homeowner can benefit from replacement of aging or inefficientequipment (e.g., as described herein in connection with FIGS. 43-48 ).

Additionally, the dashboard 7200 can also include a graphical userinterface portion 7206 including tools for the servicer, such as a routeplanner (e.g., service or sales) or a means for reordering supplies. Forexample, the dashboard 7200 can generate a daily route based on adetermination of which particular sites require service on a given dayand then direct the servicer to his or her appointments in the mostefficient manner (e.g., shortest distance), based on the level ofcomplexity (e.g., estimated time for completion), and/or based onrevenue/profit maximization (e.g., estimated time for completion versusnet profit margin). The daily route generated by the dashboard 7200 caninclude directions, route overview, materials needed for the serviceappointments, an estimated time for each service, and the like. Forexample, the dashboard can generate a list of all the materials (e.g.,chemicals, motors, cables, logic boards, sensors, etc.) that a servicerneeds for a particular day (or week), so that the servicer can verifythat he or she has all of the materials needed to complete the servicecalls before beginning the daily route, thereby increasing efficiency byminimizing the number of trips a servicer must make to procurematerials.

The system 7100 can also include a secure service technician portal(“SSTP”). The SSTP can be displayed as a graphical user interface screenon the servicer system 7124 and can provide a servicer access to siteparameters, name, address, turnovers, etc., the ability to specifyrecipients for alerts, etc. The system 7100 can also include a secureadministrative portal (“SAP”) that can be displayed as a graphical userinterface screen on a manufacturer's system and can provide the abilityto set global parameters, PID coefficients, enter promotional offers,etc. Both the SSTP and the SAP can communicate with and access aconfiguration database. The configuration database can storeconfiguration parameters and the current status of various pieces ofequipment, an alarm dispatch history, a dashboard browsing history, etc.

FIG. 69 is a flowchart illustrating processing steps carried out by thesystem 7100 to determine that a servicer's vehicle is stocked with allthe materials, discussed above, that a servicer needs for a particularday (or week). In step 7398, the system 7100 determines the idealinventory for a servicer's vehicle. In step 7400, the system 7100determines the current inventory of the servicer's vehicle. In step7402, the system 7100 compares the ideal inventory with the currentinventory of the servicer's vehicle. In step 7404 the system determineswhether the inventory of the servicer's vehicle needs to be replenished.If a negative determination is made in step 7404, the system 7100returns to step 7398. If a positive determination is made in step 7404,the system 7100 proceeds to step 7406 where a list of the requiredinventory items are transmitted to a distributor (for pick-up ordelivery to the servicer). The system 7100 then returns to step 7398.For example, a servicer's vehicle can be outfitted with a barcodesystem, RFID system, or vision system (such as that described above) incommunication with the system 7100 for determining the exact inventoryof the servicer's vehicle in real-time. As inventory items are removedfrom the vehicle, the system 7100 can add those items to a list to betransmitted to a distributor so that they can be restocked. Theinventory of the vehicle can then be compared with the list of materialsneeded for the day (or week). According to some aspects of the presentdisclosure, the system 7100 can utilize machine learning to analyze datareceived by the system 7100 (e.g., number of pool/spa locations, age ofequipment, historical service requests, etc.) and determine the requiredinventory list for the servicer's vehicle. For example, the system 7100could determine that three sensors, two power cables, two seals, onelogic board, twenty bags of salt, and twenty gallons of liquid chlorineshould be on the servicer's vehicle at the beginning of the week.

FIG. 70 is a block diagram of the sensor hub 7122. As described above,the system 7100 can include sensor hub 7122 in for monitoringoperational parameters of legacy pool/spa devices (e.g., devices whichare not are capable of direct communication with the system 7100 via adata connection). The sensor hub monitors the operational parameters ofthe legacy devices by way of a plurality of sensors 7140 that aredisposed on, or around, the pool/spa devices and that are incommunication with the sensor hub 7122. Each sensor 7140 can monitor oneor more operational parameters of a legacy pool/spa device or providethe system 7100 with additional monitoring capabilities for connectedpool/spa devices. For example, as shown in FIG. 70 , the sensor hub 7122can include a printed circuit board (“PCB”) 7214 having sensor inputs7216 for a receiving operational data from one or more sensors, such asa line current sensor 7140 k, a water temperature sensor 71401, acombination water flow and temperature sensor 7140 m, an ambienttemperature sensor 7140 n, and a pH and ORP sensing kit 7140p. As shown,the PCB 7214 can include both digital and analog inputs. As describedabove, the sensor hub 7122 monitors the operational parameters of thelegacy pool/spa devices and transmits operational data from the sensors7140 to the system 7100 via a network 7110. The sensor hub 7122 cancommunicate with the system 7100 via any wired or wirelesscommunications protocol (e.g., RS485, WiFi, Bluetooth, ZWave, Zigbee,cellular, etc.). Accordingly, sensor hub 7122 can include an LTE module7218, a WiFi transceiver 7220, or any other network communication bussuitable for providing communication with the system 7100.

The sensor hub 7122 can also include a line power input 7222 forreceiving power from a power source. According to some aspects of thepresent disclosure, the sensor hub 7122 can also include relays 7224(both high-voltage and low-voltage) for controlling one or more pool/spadevices. For example, the sensor hub could include relays 7224 forcontrolling an acid feeder 7226, a chlorine feeder or salt chlorinator7228, a variable-speed pump 7230, and a single-speed pump 7232. Thesensor hub 7122 can also include a housing 7234 enclosing the PCB 7214,LTE module 7218, and WiFi module 7220, and providing access to sensorinputs 7216, line power input 7222, and relays 7224. According to someaspects of the present disclosure, the sensor hub 7122 can be modular,allowing for expansion to monitor additional pool/spa devices or toprovide additional diagnostic capabilities. For example, an expansionmodule could be added to the sensor hub 7122 to provide more advancedmachine learning. Expansion modules can also be added to provideenhanced monitoring and control capabilities for acid feeders, chlorinefeeders, salt chlorinators, variable speed pumps, single speed pumps,and the like. The expansion module can be provided in the form of aninput card on the PCB 7214 or as a separate unit that communicates withthe sensor hub 7122 through a communication bus such as RS485 or WiFi.

The pool “hub” disclosed herein, as well as the various embodimentsdisclosed herein, allows for wired and wireless communication (e.g.,wireless methods 802.11 protocols, Zigbee, ZWave), with pool padcomponents. Communication could include product status, product health,energy use (e.g., individual and/or system), errors, preventativemaintenance, etc. The hub could incorporate all of the types ofcommunication to the hub and from the hub to the home router. The poolhub could be upgraded through the web, push updates to connectedequipment at the pad, etc. The hub could be fully configured (e.g.,through an app), which includes schedules, names, temperatures, possiblechemical dosage, percentage output, etc. The hub could have web basedcloud connectivity to other cloud based devices or systems to allow forenhanced communication and/or enhanced external inputs. The hub couldhave a communication antenna for RF mesh (e.g., ZWave, Zigbee, Thread,Weave), BlueTooth, etc to connect to pool and non-pool equipment. Theconnectivity could be done at the pool pad, the processing could be doneon the cloud (e.g., with one app built based on activated features). Thehub could connect thermal imaging to relay pool, pad, spa, and/orweather information to the hub. The hub could enable virtual interlocksbetween devices based on predetermined rules and relationships.

The system of the present disclosure is modular and can grow with theaddition and/or replacement of equipment. More specifically, the systemconsolidates all products as they are added (e.g., pump, heater,chemistry automation systems), and could only show the ones currentlyinstalled. App updates (e.g., for accessing the system from a localdevice) could come from new compiled code and/or a profile held in thedevice and transferred to the app. The system could store the operatingprofile and/or environment of the devices captured by the hub or in thedevices and relayed to the hub (which could support the predictivefailure ability as well as supports warranty analysis claims). Thesystem could store standard profiles for heater/pump (e.g., Northeastregion by zipcode) and/or heater/pump/lights (e.g., Southwest region byzipcode) for easy configuration (e.g., start with standardconfigurations based on the geography).

The system could monitor a variety of types of plug in and/or wirelesssensors (e.g., air, pool, spa, solar, temperature, etc.) for a varietyof types of measurements (e.g., presence of flow, measurement of flow,line pressure, water levels, UV levels, wind speeds, light presence,etc.). Other types of sensors that could be used include turbiditysensors, bacteria sensors, alkalinity sensors, hardness sensors, RFsensors, sound wave sensors, different light spectrum sensors,reflectors, magnetic sensors, radar, infrared, humidity, evaporation,moisture, motion, galvanic corrosion, chemical corrosion, electrolysis,electrical storm sensors, etc. The sensors could analyze and/or processraw data (e.g., locally sensed parameters, from a third party source,etc.) with an integrated processor or communicate the raw data (e.g.,locally sensed parameters, from a third party source, etc.) forprocessing in a co-located or remote processor. The sensor analysiscould incorporate trigger points, trend monitoring, manual correlationanalysis, automatic correlation analysis, etc. The sensors could beindividual or grouped (e.g., for more efficient connection and/orpairing).

The hub could function as a router for data, relay for data, or analyzethe data. The hub could have one or many different electrical andprotocol data communication interfaces to support connection to legacyand future protocols and devices. The hub could have built in Ethernet(e.g., wired, WiFi, cellular, and/or other), as well as communicationwith home router and/or direct to cloud (e.g., cellular). The hub couldconnect through wired (e.g., RS485) and/or wireless communication (e.g.,WiFi, Bluetooth, ZWave, Zigbee, etc.) with a pump (e.g., for fullvariable speed pump (“VSP”) capabilities), heater or heat pump (e.g.,for heat control), etc. (i.e., low voltage and/or high voltageapplications). The hub could have one or more modular relays or relaybanks (e.g., four relays or relay banks). The hub could connect to therelay bank for relay control through wired (e.g., RS485) and/or wirelesscommunication. The relays could be used to control any electricaldevices (e.g., high or low voltage), such as pumps, lights, etc. The hubcould control wired or wireless valves with transformation at plug or120V (e.g., to provide power to valve based on hub architecture). Thehub could connect to a light controller through wired and/or wireless(e.g., Bluetooth and/or RF mesh such as ZWave, Zigbee, Thread, Weave,etc.) communication, such as to give relay control to a pool, spa,backyard lighting, etc.

The system can perform a variety of types of analytics. For example, thesystem could analyze electrical, gas, and/or propane usage for one ormore pool devices, sites, and/or geographies (e.g., based on data fromthe hub or device). The system could analyze consolidated siteinformation to facilitate creation of algorithms (e.g., to increaseefficiency for all users). The system could use historical data trendsto predict future trends, future costs, utility budgets, warnings,efficiency change, as well as to offer preventative maintenance,predictive failure, and/or potential downtime risks. The system couldcommunicate with utilities via a web-based API or some other suitablemechanism. The system could use data trends and/or external data tominimize energy usage and/or facilitate energy consumption decisions.The system could analyze data to predict a budget for requested outcomesto give consumers better visibility in their choices. The system coulduse external web based data to automate decisions based on learned orimputed data or trends. The system could use historical and/or externaldata to predict outcomes heating or filtering events to increaseautonomy and reduce energy usage for these outcomes. The system coulduse failures, predictive failures or preventative maintenance alerts toautomatically assign or request service from a customer or partner. Thesystem could use external data from partners to increase the efficiency,potential decisions, functionality of the hub in the IoT world. Thesystem could use data to adjust automated decisions based on sensors,decision information, inputs from other devices, etc. The system coulduse flow, pool temperature, air temperature, wind data, etc. toautomatically adjust the pool turnover and optimize (e.g., fastest, mostefficient) the pool pump for amount of turnover, speed, etc., and/or toautomatically adjust the chemical dispensing and/or production tomaximize life of cells. The system could use data communicated to thehub from a water leveling sensor to predict leaks and/or water bills,and/or to automatically alert leak repair company that customer has anissue with his or her pool. The system could use web based data (e.g.,time of year, sunrise and sunset, time, etc.) to predict lightavailability and automate changes in device schedules. The system coulduse consolidated site information to help notify the user of a devicesoperation through the actions of an alternate device. The system couldprovide an installer with a step by step interface for productinstallation when a product is selected.

While various forms of web data have been described above in connectionwith FIGS. 1-33AH, web data can also include, but is not limited to:environmental conditions such as ambient temperature, humidity, windspeed and direction, rain, lightning, snow, cloud coverage, forecasts(e.g., 5 day, 10 day, etc.), pollen, visibility, fog, pollution, smog,road conditions, travel delays, UV index, location, zip code, GPScoordinates, IP address, sunrise, sunset, sun location, wind chill,public water costs, public water availability, public water quality,drought or flood alerts, average chemical costs (e.g., internet costs ofchlorine, etc.), tornado/hurricane alerts, etc.; local energy data suchas electricity costs, fuel costs, peak hours and cost fluctuation, sunlocation, available energy rebates, etc.; personal data produced inconjunction with web or web enabled device (e.g., nest, phone, hub,etc.) such as location (e.g., home, away, on the way home, etc.), datausage, amount of web enabled devices used or connected (e.g., fivedownloaded apps could represent a family of five), energy used (e.g.,fuel, electricity, etc.), data speed (e.g., upload/download rate (mbps),ping), etc.; and product data (e.g., in conjunction with registration)such as warranty, age, recalls, tech bulletins, replacement parts,specs, tech support, tutorials (e.g., instructional videos), specials(e.g., coupons, promotions, etc.), local support (e.g., authorizedservice center), firmware updates, new product releases, pool industrynews, safety alerts, safety suggestions, etc.

It is contemplated that all of the systems disclosed herein couldinterface with one or more dedicated/proprietary or 3rd party voiceinteraction devices (e.g., Apple's Siri, Amazon Echo, etc.). Poolcontrol logic 70 could interface with the voice interaction devicesdirectly (e.g., Bluetooth), locally (e.g., through network router ormesh network), or via the cloud. The user commands, inputs, actions,etc., described herein, could be provided to pool control logic 70 viathe voice interaction device and notifications, messages, alerts, etc.,described herein, could be transmitted to the user via the voiceinteraction device (e.g., verbal notification, messages, alerts, etc.).For example, to activate the lighting system 14 h, a user could simplysay, “Alexa, turn on the pool lights.”

It is contemplated that that the various devices in the embodimentsdescribed herein could also communicate by way of power line carrier(e.g., power-line digital subscriber line (PDSL), mains communication,power-line telecommunications, or power-line networking (PLN)) to allowthe various interconnected components to communicate with one anothervia electrical wiring.

It is also contemplated that site data could be replaced with clouddata, or data at the site could be combined with data in the cloud, andthe system could intelligently combine disparate data from differentcloud servers.

Also contemplated is capturing specific equipment data (e.g., bar codes)by a smartphone camera at the site at the time of installation andconnecting to an application. This can, at the same time, capture GPScoordinates for the address and date of installation for warrantyregistration, and automatically load the location of the pool into thepool control logic with cloud support for sunrise/sunset, real time andforecasted weather data. Similarly, by standing by the pool and takingphoto of the pool, one can record North-South-East-West (e.g., phonecompass) and load similar data into the pool control logic with cloudsupport for using wind direction as well. If photos are taken multipletimes in the day, compass and date information could be used toextrapolate the pool's sun exposure for pool heating and othercalculations.

In addition to receiving operational data from locally installedpool/spa equipment, remote data (e.g., an off-site or cloud server) andweb data, described hereinabove, it is also contemplated that poolcontrol logic 70 could receive operational data from one or more piecesof pool equipment having enhanced sensing capabilities. For example, thesystem 10 could include lighting system 14 h (see, e.g., FIG. 1 ) havinga smart light 5014 h. More specifically, as shown in FIG. 36 , smartlight 5014 h could include temperature sensor 5000 (e.g., fortemperature sensing of air, water, etc.), microphone 5001, chemistrysensor 5002 (e.g., for sensing salinity, pH, ORP, TDS, chlorine, etc.),light output sensor 5004 (e.g. for sensing lumen, lux, CCT, CIE, etc.),occupancy sensor 5006 (e.g., IR, sound/audio detection, radar, etc.),water clarity sensor 5008, water level sensor, 5010, water pressuresensor 5012, flow sensor 5014, turbidity sensor 5016, user input module5018 (e.g., touch panel, physical buttons, etc.) and networkcommunication and local control subsystem 12 h (see, e.g., FIGS. 1-2 ).The smart light 5014 h could further include the ability to measure forstray current. The user input module could include touch-based inputs(e.g., capacitive, inductive, fear field RF, etc.). The smart light 5014h could further include a display 5019 provided as a separate componentor integrally provided with user input module 5018. The smart light 5014h could accordingly be used to display an error message for a faultcondition or warning message regarding pool chemistry, or could be usedto display any other kind of visual media. Although previouslydiscussed, it is noted that the network communication and local controlsubsystem 12 h could communicate with pool control logic 70, located inone or more of the pool/spa components discussed herein, using any ofthe communication protocols discussed herein, including but not limitedto, power line carrier, ethernet, RF, Bluetooth, WiFi, and Zigbee. Smartlight 5014 h could also record hours of operation, light output,voltage, and current as well as corresponding operating andenvironmental conditions during use. It is further noted thattemperature sensor 5000, microphone 5001, chemistry sensor 5002, lightoutput sensor 5004, occupancy sensor 5006, water clarity sensor 5008,water level sensor, 5010, water pressure sensor 5012, flow sensor 5014,turbidity sensor 5016, user input module 5018, and network communicationand local control subsystem 12 h could be incorporated into the alighting device, or could be provided as an additional attachment to thelighting device body. Further, as discussed above, pool control logic 70could reside or be run within the smart light 5014 h, in another pieceof pool/spa equipment, remotely, or distributed amongst one or more ofthese locations.

FIG. 37 is a flowchart illustrating processing steps of the pool controllogic 70 for controlling a heater based on operational data receivedfrom the smart lights 5014 h described above. More specifically,multiple smart lights provided in and around the pool/spa could act as amesh array of temperature sensor inputs for determining the averagetemperature of the pool/spa and controlling the heater accordingly. Instep 5020, the pool control logic 70 receives operational data, e.g.,temperature, from a first smart light. In step 5022, the pool controllogic 70 receives operational data, e.g., temperature, from a secondsmart light. In step 5024, the pool control logic 70 receivesoperational data, e.g., temperature, from the nth smart light. That is,the pool control logic 70 receives operational data for all smart lightsin addition to the first and second smart lights discussed in connectionwith steps 5022 and 5024. In step 5026, the pool control logic 70determines the average temperature off the pool/spa based on theoperational data received from the smart lights. In step 5028, the poolcontrol logic 70 retrieves temperature setpoint data from memory. Instep 5030, the pool control logic 70 determines if the averagetemperature (determined in step 5026) is below the temperature setpoint.If a positive determination is made, e.g., the average temperature isbelow the temperature setpoint, then the process proceeds to step 5032,where the pool control logic 70 transmits an instruction to activate aheater and the process reverts to step 5020. If a negative determinationis made, e.g., the average temperature is greater than the temperaturesetpoint, then the process proceeds to step 5034, where the pool controllogic 70 transmits an instruction to deactivate a heater and the processreverts to step 5020. It is also contemplated that instead ofdetermining the average temperature of the pool/spa, pool control logic70 could determine the warmest or coolest area of the pool/spa andcontrol the heater accordingly (e.g., warming the coolest area of thepool to a temperature setpoint, or cease warming of the pool when thewarmest area of the pool reaches a temperature setpoint).

FIG. 38 is a flowchart illustrating processing steps of the pool controllogic 70 for controlling a heater by determining a predicted temperaturesetpoint based on previous user specified temperature setpoints. In step5036, the pool control logic 70 receives an instruction to activate aheater. In step 5038, the pool control logic 70 retrieves a firstprevious user temperature setpoint from memory. In step 5040, the poolcontrol logic 70 retrieves a second previous user temperature setpointfrom memory. In step 5042, the pool control logic 70 retrieves the nthprevious user temperature setpoint from memory. That is, in step 5042the pool control logic 70 retrieves all other previous user temperaturesetpoints from memory that are desired. For example, the system can beset-up so that the three (3), four (4), five (5), ten (10), or twenty(20), etc., most recent previous user temperature setpoints are utilizedin this process. In step 5044, the pool control logic 70 determines apredicted user temperature setpoint based on the previous usertemperature setpoints retrieved from memory in steps 5038, 5040, and5042. This determination can be based on, for example, the mean, median,mode, etc., of the previous user temperature setpoints retrieved frommemory. In step 5046, the pool control logic 70 transmits an instructionto a heater to operate, e.g., until the predicted setpoint determined instep 5044 is reached.

FIG. 39 is a flowchart illustrating processing steps of the pool controllogic 70 for controlling the pool/spa water chemistry by operatingsanitization equipment based on operational data received from waterchemistry sensors in one or more smart lights 5014 h. In step 5048, thepool control logic 70 receives water chemistry setpoints, e.g., relatingto salinity, pH, ORP, TDS, chlorine levels, etc., from memory. In step5050, the pool control logic 70 receives water chemistry operationaldata, e.g., salinity, pH, ORP, TDS, chlorine levels, etc., from smartlight sensors. In step 5052, the pool control logic 70 determines if thewater chemistry operational data (determined in step 5050) is withinspecific levels, e.g., which are based on the setpoints retrieved instep 5048. If a positive determination is made, then the process returnsto step 5050, where the pool control logic 70 continues to receive waterchemistry operational data from the smart light sensors. If a negativedetermination is made, then the process proceeds to step 5054, where thepool control logic 70 determines an action to correct the waterchemistry, e.g., increase chlorination rate by X %. In step 5056, thepool control logic transmits an instruction to the chemistry automationsystem to take corrective action in accordance with the actiondetermined in step 5054, e.g., increase the chlorination rate by X %,and the process reverts to step 5050.

In accordance with additional embodiments of the present disclosure,using similar processing steps as described in connection with FIG. 39 ,pool control logic 70 could also use operational data received from thesmart light 5014 h sensors to control a robotic cleaner based onoperational data received from water clarity sensor 5008 or occupancysensor 5006, activate the pump and/or filter based on operational datareceived from water clarity sensor 5009, activate water features,actuate valves, or activate the pump based on operational data receivedfrom flow sensor 5014, trigger a house alarm (if armed) based onoperational data received from occupancy sensor 5006, activate thelighting system based on operational data received from occupancy sensor5006 (e.g., turn on the lights, increase the intensity of the lights,switch light color based on an unplanned occupancy or turn lights onbased on time of day, automatically turn off after a period of time ifno occupant detected, “follow the swimmer” by only activating the lightwhen an occupant is detected proximate thereto), adjust the watertemperature based on operational data received from occupancy sensor5006, adjust light output based on operational data received fromambient light sensor 5004, and adjust CCT based on operational datareceived from ambient air temperature sensor 5000.

FIG. 40 is a flowchart illustrating processing steps of the pool controllogic 70 for predictively displaying the most popular light show basedon previously selected light shows. In step 5058, the pool control logic70 receives an instruction to activate a light show. In step 5060, thepool control logic 70 retrieves a first previously selected light showfrom memory. In step 5062, the pool control logic 70 retrieves a secondpreviously selected light show from memory. In step 5064, the poolcontrol logic 70 retrieves the nth previously selected light show frommemory. That is, in step 5064 the pool control logic 70 retrieves allother previously selected light shows from memory. For example, thesystem can be set-up so that the three (3), four (4), five (5), ten(10), or twenty (20), etc., most recent previously selected light showsare utilized in this process. In step 5066, the pool control logic 70determines the most common light show based on the previously selectedlight shows retrieved from memory in steps 5060, 5062, and 5064. In step5068, the pool control logic 70 transmits an instruction to a lightingsystem to display the most common light show as determined in step 5066.It is further contemplated that rather than receiving all of thepreviously selected light shows from the memory, pool control logic 70could instead retrieve a set number of most recent light shows (e.g.,most recent 10 light shows), or pool control logic 70 could retrievelight shows that were selected within a specified period of time (e.g.,light shows selected within the last year). In addition to displayinglight shows, it is also contemplated that the smart light 5014 h couldcommunicate with music and speaker systems to provide a coordinatedmusic and lighting show (e.g., lights change color and intensity, pulse,move, etc. based on a particular musical selection).

It is further contemplated smart light 5014 h could provide for userinteraction with the pool/spa control system 10 and pool control logic70. As discussed above, the smart light could include a user inputmodule 5018 having touch-based inputs and a display 5019. For example,the user could use the touch-based controls to adjust the watertemperature at the smart light 5014 h, or to modify or change a lightshow or light color. Similarly, the touch-based controls and display5019 could be used to virtually configure custom light shows.Additionally, the user could interact with the pool/spa control system10 using the microphone 5001 (e.g., using voice commands either above orbelow water).

In accordance with embodiments of the disclosure, the pool control logic70 could receive operational data from a plurality of smart lights 5014h disposed about a pool/spa. More specifically, pool control logic 70could receive operational data from occupancy sensors 5006 in theplurality of smart lights 5014 h. Using the plurality of lights 5014 hand sensors 5006 as nodes in a mesh array, pool control logic 70 coulddetermine the location of the occupant in the pool/spa.

In accordance with embodiments of the present disclosure, the smartlight 5014 h could further perform an optical comparison with a camerato identify when the pool is dirty or contains debris or otherparticulate.

In accordance with embodiments of the present disclosure, a plurality ofsmart lights 5014 h could be used as an array to provide directionalinput for a robotic cleaner. For example, as discussed above, poolcontrol logic 70 could determine areas of the pool having highconcentrations of dirt or debris. Further, a plurality of smart lights5014 h could be disposed about a pool/spa. Pool control logic 70 couldthen determine the smart light 5014 h in closest proximity to the debrisand send an instruction to activate the smart light 5014 h. The poolcleaner would then detect the light from the smart light 5014, proceedtowards the same, and accordingly proceed towards the area having a highconcentration of debris. Alternatively, smart lights 5014 h couldindependently illuminate if they determine they are proximate to an areaof high debris. The pool cleaner could then proceed to each area of highdebris, in turn.

In accordance with embodiments of the present disclosure, smart lights5014 h could be used to provide light catalyzed chemistry forsanitization by adjusting their light output wavelength. For example,pool control logic 70 could receive an instruction to sanitize thepool/spa. Pool control logic 70 could then retrieve light wavelengthsanitization setpoint data from the memory (e.g., sanitizationwavelength is 254 nm). Pool control logic 70 could then transmit aninstruction to the lighting system 14 h and/or smart light 5014 h tooperate at the sanitization setpoint (e.g., 254 nm).

FIGS. 73-85 illustrate components of embodiments of the heating/coolingsystem 14 b of FIG. 1 and processing steps carried out by theembodiments of the heating/cooling system 14 b. FIG. 73 is a blockdiagram illustrating components of an embodiment of the heating/coolingsystem 14 b of FIG. 1 for measuring venting system exhaust pressure,venting system temperature, and detecting changes and/or problems in theperformance of the venting of the heating/cooling system 14 b.

A pool heater of a heating/cooling system that is installed in abuilding or indoor space utilizes a venting system comprising a vent andvent pipes to safely exhaust the products of combustion outdoors. Ablockage in the vent and/or vent pipes can result in poisonous exhaustgases (e.g., carbon monoxide) being released into the building or indoorspace. Further, a blockage in the vent and/or vent pipes can reduce airflow and increase exhaust gas recirculation, both of which can causecarbon monoxide production to increase. As discussed above in relationto FIGS. 23C and 23J, design safety standards for pool heaters (e.g.,ANSI Z21.56), require tests that demonstrate that a heater of theheating/cooling system will detect a vent and/or vent pipe blockage anddeactivate before the carbon monoxide concentration in the exhaust gasreaches a predetermined level.

Pool heater manufacturers can detect a vent and/or vent pipe blockagevia at least one pressure switch that detects the venting system exhaustpressure generated by the blockage. However, a pressure switch issusceptible to failure. For example, the tubing between the pressureswitch and the vent and/or vent pipes can be disconnected or broken orthe pressure switch can be improperly wired (i.e., “jumpered”) therebyrendering the pressure switch ineffective.

As shown in FIG. 73 , the heating/cooling system 14 b could include aheater 7400 having a water inlet pipe 7404 a, a water outlet pipe 7404b, a heat exchanger 7402, a vent 7406, vent pipes 7408, a fan 7410having a fan motor 7412, a differential pressure sensor 7414 and anetwork communication and local control subsystem 12 b (“controlsubsystem 12 b”) including, but not limited to, a processor 22 and amemory 23. Alternatively, the control subsystem 12 b could be a hardwareprocessor including a controller in communication with the memory 23 andthe differential pressure sensor 7414. According to some embodiments ofthe present disclosure, the heating/cooling system 14 b can include oneor more temperature sensors 7415 that can monitor the temperature of oneor more of the vent pipes 7408, water inlet 7404 a, and water outlet7404 b, which can be monitored by the processor 22 and used to generatea temperature profile for the heating/cooling system 14 b.

The water inlet pipe 7404 a transports water from the pool/spa into theheating/cooling system 14 b via, for example, a pump or via other means.The water passes through the heater 7400 and into the heat exchanger7402. The water outlet pipe 7404 b transports water out from theheating/cooling system 14 b to, for example, the pool or spa. Thedifferential pressure sensor 7414 measures the exhaust pressure in thevent 7406 and/or vent pipes 7408 and cannot be “jumpered” like apressure switch which makes it more effective. As shown, thedifferential pressure sensor 7414 can measure the pressure differentialbetween the vent 7406 and one or more of the vent pipes 7408 in order todetermine the presence of a blockage therein. The heating/cooling system14 b provides for detecting changes and/or problems in the performanceof the venting of the heating/cooling system 14 b by defining aplurality of predetermined venting system exhaust pressure thresholds asdescribed in further detail below.

Referring to FIGS. 1 and 2 , the control subsystem 12 b could include aprocessor 22 in communication with a memory 23 including at least one ofa random-access memory 24 and a non-volatile memory 30. The processor 22provides local processing capability for the control subsystem 12 b. Thenon-volatile memory 30 can store one or more local control programs 30for providing local control of the pool and spa equipment in which thecontrol subsystem 12 b is installed. The processor 22 is incommunication with the differential pressure sensor 7414 of the heater7400. It is noted that a pressure sensor may also be referred to as apressure transducer, a pressure transmitter, a pressure indicator, apiezometer and a manometer and could be one of an absolute pressuresensor, a gauge pressure sensor, a vacuum pressure sensor, adifferential pressure sensor, a sealed pressure sensor or any other typeof pressure sensing device. The differential pressure sensor 7414 can beconnected to and in communication with the heating/cooling system 14 band the control subsystem 12 b via a wired or a wireless connection.

The processor 22 may detect changes and/or problems in the performanceof the venting of the heating/cooling system 14 b and control theoperation of the heating/cooling system 14 b based on (1) a measurementof the venting system exhaust pressure relative to a plurality ofpredetermined pressure thresholds and (2) a calculated differencebetween the measurement of the venting system exhaust pressure and alast recorded measurement of the venting system exhaust pressurerelative to a plurality of predetermined pressure thresholds. It isnoted that the control subsystem 12 b may be affixed to, installedwithin or installed remotely from the heating/cooling system 14 b. Thecomponents of the control subsystem 12 b are discussed in more detailabove in regards to FIG. 2 .

FIGS. 74A-B are flowcharts illustrating processing steps carried out bythe heating/cooling system 14 b of FIG. 73 for detecting changes and/orproblems in the performance of the venting of the heating/cooling system14 b, indicated generally at method 7450.

In step 7452, the system 14 b receives a command to heat the water inthe pool or spa and ignites and fires the heater 7400. A user maytransmit the command via a remote device or terminal (e.g., smartphone/computer system 20 of FIG. 1 ) or via a display of theheating/cooling system 14 b to instruct the heating system 14 b to heatthe water in the pool or spa. Alternatively, the system 14 b maytransmit the command due to a predetermined condition. For example, auser can set a condition for commanding the heating/cooling system 14 bto activate the heater 7400 (e.g., engage heating functions) at apredetermined time and/or at a predetermined temperature. Those skilledin the art would understand that, in a heating/cooling system or acooling system, the activation command can also be a command to cool thewater in a pool or spa.

In step 7454, the system 14 b receives a command to activate the fan7410. Then, in step 7456, the system 14 b determines whether the fan isoperational. If the fan 7410 is not operational (i.e., the fan motor7412 is inoperative), then in step 7458, the system 14 b determineswhether any retries remain for transmitting an activation command to thefan 7410. If no retries remain, then in step 7462, the system 14 btransmits an error message and the process ends. If at least one retryremains, then the system 14 b transmits a command to activate the fan7410 in step 7460. If the fan 7410 is operational (i.e., the fan motor7412 is operative), then the system 14 b measures the venting systemexhaust pressure via the differential pressure sensor 7414 in step 7464.

In step 7466, the system 14 b determines whether the measured ventingsystem differential exhaust pressure is greater than a predeterminedminimum pressure threshold. A minimum venting system differentialexhaust pressure should be present when the fan 7410 is operational. Forexample, if the fan 7410 is operational but the measured venting systemdifferential exhaust pressure is less than a predetermined minimumpressure threshold, then the vent 7406 or the vent pipes 7408 may bedamaged and/or disconnected.

In step 7468, the system 14 b transmits a diagnostic message indicativeof a problem with the venting of the system 14 b when the measuredventing system differential exhaust pressure is not greater than thepredetermined minimum pressure threshold. The diagnostic message can bea report, an alert, etc. The diagnostic message can be transmitted toand displayed by the heating/cooling system 14 b display or a remotedevice such as the smart phone/computer system 20. The diagnosticmessage can include, but is not limited to, a summary of the problem(e.g., vent 7406 and/or vent pipes 7408 disconnected), instructionsdetailing how to troubleshoot the problem, an option to schedule arepair specialist to fix the problem and an override command. Then instep 7470, the system 14 b stops the operation of the heater 7400 toprevent potential damage to the heater 7400 and/or the increase ofexhaust gas within the heater 7400 and the process ends. Alternatively,if the system 14 b determines that the measured venting systemdifferential exhaust pressure is greater than the predetermined minimumpressure threshold, the process proceeds to step 7472.

In step 7472, the system 14 b determines whether the measured ventingsystem differential exhaust pressure is less than a predeterminedmaximum pressure threshold. A venting system differential exhaustpressure maximum threshold can be used to detect a blockage of the vent7406 and/or the vent pipes 7408.

In step 7474, the system 14 b transmits a diagnostic message indicativeof a problem with the venting of the system 14 b when the system 14 bdetermines that the measured venting system differential exhaustpressure is not less than the predetermined maximum pressure threshold.The diagnostic message can be a report, an alert, etc. The diagnosticmessage can be transmitted to and displayed by the heating/coolingsystem 14 b display or a remote device such as the smart phone/computersystem 20. The diagnostic message can include, but is not limited to, asummary of the problem (e.g., vent 7406 and/or vent pipes 7408 blocked),instructions detailing how to troubleshoot the problem, an option toschedule a repair specialist to fix the problem and an override command.Then in step 7476, the system 14 b stops the operation of the heater7400 to prevent potential damage to the heater 7400 and/or the increaseof exhaust gas within the heater 7400 and the process ends.Alternatively, if the system 14 b determines that the measured ventingsystem differential exhaust pressure is less than the predeterminedminimum pressure threshold, the process proceeds to step 7478.

In step 7478, the system 14 b retrieves the last recorded measuredventing system differential exhaust pressure and in step 7480, thesystem 14 b calculates a difference between the measured venting systemdifferential exhaust pressure and the last recorded measured ventingsystem differential exhaust pressure. The last recorded measured ventingsystem differential exhaust pressure can be stored in the memory 23 orthe cloud. An increase in the venting system differential exhaustpressure over time can be indicative of a blockage forming (e.g., ananimal nest) within the vent 7406 and/or the vent pipes 7408.

Therefore, in step 7482, the system 14 b determines whether thecalculated difference between the measured venting system differentialexhaust pressure and the last recorded measured venting systemdifferential exhaust pressure is less than the last recorded calculateddifference. If the calculated difference between the measured ventingsystem differential exhaust pressure and the last recorded measuredventing system differential exhaust pressure is less than the lastrecorded calculated difference, then in step 7484, the system 14 brecords the measured venting system differential exhaust pressure as thelast recorded measured venting system differential exhaust pressure.Additionally, in step 7486, the system 14 b records the calculateddifference as the last recorded calculated difference. Then, in step7488, the system 14 b continues the operation of the heater 7400.

Alternatively, if the system 14 b determines that the calculateddifference between the measured venting system differential exhaustpressure and the last recorded measured venting system differentialexhaust pressure is not less than the last recorded calculateddifference, then the process proceeds to step 7490. In step 7490, thesystem 14 b determines whether the calculated difference exceeds thelast recorded calculated difference by a predetermined threshold. Inparticular, the system 14 b determines whether the calculated differencebetween the measured venting system differential exhaust pressure andthe last recorded measured venting system differential exhaust pressureexceeds the last recorded calculated difference by a predetermined“high” pressure threshold.

In step 7492, the system 14 b transmits a diagnostic message indicativeof a problem with the venting of the system 14 b when the calculateddifference exceeds the last recorded calculated difference by thepredetermined “high” pressure threshold. The diagnostic message can be areport, an alert, etc. The diagnostic message can be transmitted to anddisplayed by the heating/cooling system 14 b display or a remote devicesuch as the smart phone/computer system 20. The diagnostic message caninclude, but is not limited to, a summary of the problem (e.g., unsafepressure level), instructions detailing how to troubleshoot the problem,an option to schedule a repair specialist to fix the problem and anoverride command. Then in step 7496, the system 14 b stops the operationof the heater 7400 to prevent potential damage to the heater 7400 and/orthe increase of exhaust gas within the heater 7400 and the process ends.Alternatively, the system 14 b continues the operation of the heater7400 in step 7496 when the calculated difference does not exceed thelast recorded calculated difference by the predetermined “high” pressurethreshold.

FIGS. 74C-74D are flowcharts illustrating processing steps carried outby the heating/cooling system 14 b of FIG. 73 for detecting changesand/or problems in the performance of the venting of the heating/coolingsystem 14 b, indicated generally at method 7451. More specifically, theheating/cooling system 14 b can detect changes and/or problems in theperformance of the venting of the heating/cooling system 14 b by usingthe one or more temperature sensors 7415 shown in FIG. 73 to monitor thetemperature profile of the water inlet 7404 a, water outlet 7404 b, andvent pipe 7408. The system can detect changes and/or problems in theperformance of the venting of the heating/cooling system 14 b usingsteps similar to those discussed in connection with method 7450, exceptfor the distinctions noted herein. According to some embodiments of thepresent disclosure, the foregoing processing steps can also be executedby the heating/cooling system 14 b in connection with the “economy”and/or “adaptive” modes of the system described herein.

In step 7453, the system 14 b receives a command to heat the water inthe pool or spa and ignites and fires the heater 7400. A user maytransmit the command via a remote device or terminal (e.g., smartphone/computer system 20 of FIG. 1 ) or via a display of theheating/cooling system 14 b to instruct the heating system 14 b to heatthe water in the pool or spa. Alternatively, the system 14 b maytransmit the command due to a predetermined condition. For example, auser can set a condition for commanding the heating/cooling system 14 bto activate the heater 7400 (e.g., engage heating functions) at apredetermined time and/or at a predetermined temperature. Those skilledin the art would understand that, in a heating/cooling system or acooling system, the activation command can also be a command to cool thewater in a pool or spa.

In step 7455, the system 14 b receives a command to activate the fan7410. Then, in step 7457, the system 14 b determines whether the fan isoperational. If the fan 7410 is not operational (i.e., the fan motor7412 is inoperative), then in step 7459, the system 14 b determineswhether any retries remain for transmitting an activation command to thefan 7410. If no retries remain, then in step 7463, the system 14 btransmits an error message and the process ends. If at least one retryremains, then the system 14 b transmits a command to activate the fan7410 in step 7461. If the fan 7410 is operational (i.e., the fan motor7412 is operative), then the system 14 b measures the temperatureprofile of the heating/cooling system 14 b via the one or moretemperature sensors 7415 in step 7465.

In step 7467, the system 14 b determines whether the measuredtemperature profile is greater than a predetermined minimum temperatureprofile threshold. A minimum temperature profile should be present whenthe fan 7410 is operational. For example, if the fan 7410 is operationalbut the measured temperature profile is less than a predeterminedminimum temperature profile, then the vent 7406 or the vent pipes 7408may be damaged and/or disconnected.

In step 7469, the system 14 b transmits a diagnostic message indicativeof a problem with the system 14 b when the measured temperature profileis not greater than the predetermined minimum temperature profilethreshold. The diagnostic message can be a report, an alert, etc. Thediagnostic message can be transmitted to and displayed by theheating/cooling system 14 b display or a remote device such as the smartphone/computer system 20. The diagnostic message can include, but is notlimited to, a summary of the problem (e.g., vent 7406 and/or vent pipes7408 disconnected), instructions detailing how to troubleshoot theproblem, an option to schedule a repair specialist to fix the problemand an override command. Then in step 7471, the system 14 b stops theoperation of the heater 7400 to prevent potential damage to the heater7400 and/or the increase of temperature within the heater 7400 and theprocess ends. Alternatively, if the system 14 b determines that themeasured temperature profile is greater than the predetermined minimumtemperature profile threshold, the process proceeds to step 7473.

In step 7473, the system 14 b determines whether the measuredtemperature profile is less than a predetermined maximum temperatureprofile threshold. A temperature profile maximum threshold can be usedto detect a blockage of the vent 7406 and/or the vent pipes 7408.

In step 7475, the system 14 b transmits a diagnostic message indicativeof a problem with the venting of the system 14 b when the system 14 bdetermines that the measured temperature profile is not less than thepredetermined maximum temperature profile threshold. The diagnosticmessage can be a report, an alert, etc. The diagnostic message can betransmitted to and displayed by the heating/cooling system 14 b displayor a remote device such as the smart phone/computer system 20. Thediagnostic message can include, but is not limited to, a summary of theproblem (e.g., vent 7406 and/or vent pipes 7408 blocked), instructionsdetailing how to troubleshoot the problem, an option to schedule arepair specialist to fix the problem and an override command. Then instep 7477, the system 14 b stops the operation of the heater 7400 toprevent potential damage to the heater 7400 and/or the increase oftemperature within the heater 7400 and the process ends. Alternatively,if the system 14 b determines that the measured temperature profile isless than the predetermined minimum temperature profile threshold, theprocess proceeds to step 7479.

In step 7479, the system 14 b retrieves the last recorded measuredtemperature profile and in step 7481, the system 14 b calculates adifference between the measured temperature profile and the lastrecorded measured temperature profile. The last recorded measuredtemperature profile can be stored in the memory 23 or the cloud. Anincrease in the temperature profile over time can be indicative of ablockage forming (e.g., an animal nest) within the vent 7406 and/or thevent pipes 7408.

Therefore, in step 7483, the system 14 b determines whether thecalculated difference between the measured temperature profile and thelast recorded measured temperature profile is less than the lastrecorded calculated difference. If the calculated difference between themeasured temperature profile and the last recorded measured temperatureprofile is less than the last recorded calculated difference, then instep 7485, the system 14 b records the measured temperature profile asthe last recorded measured temperature profile. Additionally, in step7487, the system 14 b records the calculated difference as the lastrecorded calculated difference. Then, in step 7489, the system 14 bcontinues the operation of the heater 7400.

Alternatively, if the system 14 b determines that the calculateddifference between the measured temperature profile and the lastrecorded measured temperature profile is not less than the last recordedcalculated difference, then the process proceeds to step 7491. In step7491, the system 14 b determines whether the calculated differenceexceeds the last recorded calculated difference by a predeterminedthreshold. In particular, the system 14 b determines whether thecalculated difference between the measured temperature profile and thelast recorded measured temperature profile exceeds the last recordedcalculated difference by a predetermined “high” temperature profilethreshold.

In step 7493, the system 14 b transmits a diagnostic message indicativeof a problem with the venting of the system 14 b when the calculateddifference exceeds the last recorded calculated difference by thepredetermined “high” temperature profile threshold. The diagnosticmessage can be a report, an alert, etc. The diagnostic message can betransmitted to and displayed by the heating/cooling system 14 b displayor a remote device such as the smart phone/computer system 20. Thediagnostic message can include, but is not limited to, a summary of theproblem (e.g., unsafe temperature level), instructions detailing how totroubleshoot the problem, an option to schedule a repair specialist tofix the problem and an override command. Then in step 7495, the system14 b stops the operation of the heater 7400 to prevent potential damageto the heater 7400 and/or the increase of temperature within the heater7400 and the process ends. Alternatively, the system 14 b continues theoperation of the heater 7400 in step 7497 when the calculated differencedoes not exceed the last recorded calculated difference by thepredetermined “high” temperature profile threshold.

FIG. 75 is a block diagram illustrating components of an embodiment ofthe heating/cooling system 14 b of FIG. 1 for detecting the properfunction of a fan motor of the heating/cooling system 14 b based on ameasurement of the electric current of the fan motor.

A pool heater of a heating/cooling system comprises a fan driven by anelectric motor to move air through the heating/cooling system. Forexample, in a gas-fired pool heater, air is moved through the burner andcombustion system by a centrifugal fan (i.e., a blower) whereas in aheat pump pool heater, air is moved through the heat exchanger by anaxial fan. The electric current flowing to the motors of these fans canbe used to detect and diagnose a problem with the pool heater.Typically, in a gas-fired pool heater, a pressure switch can confirmwhether the blower is functioning before the gas valve is opened andignition is started by measuring the small vacuum generated by theblower.

The heating/cooling system 14 b provides for detecting the properfunction of a fan motor of the heating/cooling system 14 b based on ameasurement of the electric current of the fan motor at a given speed(e.g., RPM) via a current sensor and thereby obviating a need for apressure switch. As shown in FIG. 75 , the heating/cooling system 14 bcould include a heater 7400 having a water inlet pipe 7404 a, a wateroutlet pipe 7404 b, a heat exchanger 7402, a vent 7406, vent pipes 7408,a fan 7410 having a fan motor 7412, a current sensor 7416 and a networkcommunication and local control subsystem 12 b (“control subsystem 12b”) including, but not limited to, a processor 22 and a memory 23.Alternatively, the control subsystem 12 b could be a hardware processorincluding a controller in communication with the memory 23 and thecurrent sensor 7416.

The water inlet pipe 7404 a transports water from the pool/spa into theheating/cooling system 14 b via, for example, a pump or via other means.The water passes through the heater 7400 and into the heat exchanger7402. The water outlet pipe 7404 b transports water out from theheating/cooling system 14 b to, for example, the pool or spa. Thecurrent sensor 7416 measures the electric current of the fan motor 7412.The speed (e.g., RPM) of the fan motor can be provided to the processor22, either directly (e.g., by way of a communication channel, or thelike, therebetween), or via an intermediate rotational speed sensor (notshown), for example, coupled to the output shaft of the motor 7412. Theheating/cooling system 14 b provides for detecting the proper functionof the fan motor 7412 of the heating/cooling system 14 b based on ameasurement of the electric current of the fan motor 7412 at a givenspeed (e.g., RPM), via the current sensor 7416, and by defining aplurality of predetermined current thresholds.

Referring to FIGS. 1 and 2 , the control subsystem 12 b could include aprocessor 22 in communication with a memory 23 including at least one ofa random-access memory 24 and a non-volatile memory 30. The processor 22provides local processing capability for the control subsystem 12 b. Thenon-volatile memory 30 can store one or more local control programs 30for providing local control of the pool and spa equipment in which thecontrol subsystem 12 b is installed. The processor 22 is incommunication with the current sensor 7416 of the heater 7400. It isnoted that the current sensor 7416 could sense an alternating currentinput or a direct current input. The current sensor 7416 can beconnected to and in communication with the heating/cooling system 14 band the control subsystem 12 b via a wired or a wireless connection.

The processor 22 may detect changes and/or problems in the performanceof the fan motor 7412 and control the operation of the heating/coolingsystem 14 b based on a measurement of the current of the motor 7412relative to a plurality of predetermined current thresholds. It is notedthat the control subsystem 12 b may be affixed to, installed within orinstalled remotely from the heating/cooling system 14 b. The componentsof the control subsystem 12 b are discussed in more detail above inregards to FIG. 2 .

FIG. 76 is a flowchart illustrating processing steps carried out by theheating/cooling system 14 b of FIG. 75 for detecting the proper functionof the fan motor 7412 of the heating/cooling system 14 b based on themeasurement of the electric current of the fan motor 7412 via thecurrent sensor 7416, indicated generally at method 7500.

In step 7502, the system 14 b receives a command to heat the water inthe pool or spa and ignites and fires the heater 7400. A user maytransmit the command via a remote device or terminal (e.g., smartphone/computer system 20 of FIG. 1 ) or via a display of theheating/cooling system 14 b to instruct the heating system 14 b to heatthe water in the pool or spa. Alternatively, the system 14 b maytransmit the command due to a predetermined condition. For example, auser can set a condition for commanding the heating/cooling system 14 bto activate the heater 7400 (e.g., engage heating functions) at apredetermined time and/or at a predetermined temperature. Those skilledin the art would understand that, in a heating/cooling system or acooling system, the activation command can also be a command to cool thewater in a pool or spa.

In step 7504, the system 14 b receives a command to activate the fan7410. Then, in step 7506, the system 14 b determines whether the fan isoperational. If the fan 7410 is not operational (i.e., the fan motor7412 is inoperative), then in step 7508, the system 14 b determineswhether any retries remain for transmitting an activation command to thefan 7410. If no retries remain, then in step 7510, the system 14 btransmits an error message and the process ends. If at least one retryremains, then the system 14 b transmits a command to activate the fan7410 in step 7510. If the fan 7410 is operational (i.e., the fan motor7412 is operative), then in step 7514, the system 14 b measures thecurrent of the fan motor 7412 via the current sensor 7416. Optionally,in step 7515, the system 14 b can measure the speed (e.g., RPM) of thefan motor 7412. In step 7516, the system 14 b determines whether themeasured fan motor current is greater than a predetermined minimumcurrent threshold. According to some embodiments of the presentdisclosure, the system 14 b can determine whether the measured fan motorcurrent is greater than a predetermined minimum current threshold at agiven speed of the fan motor. For example, the current of the fan motorcan vary, depending on the speed at which the fan motor is operating. Assuch, the system 14 b can account for variations in operating speed whendetermining if the fan motor current is operating within currentthresholds. A minimum fan motor current should be present when the fan7410 and fan motor 7412 are operative. For example, if the system 14 breceives a command to activate the fan 7410 but the measured fan motorcurrent is not greater than the predetermined minimum current threshold,then the fan motor 7412 may be improperly wired. In step 7518, thesystem 14 b transmits a diagnostic message indicative of a problem withthe fan motor 7412 when the measured fan motor current is not greaterthan the predetermined minimum current threshold. The diagnostic messagecan be a report, an alert, etc. The diagnostic message can betransmitted to and displayed by the heating/cooling system 14 b displayor a remote device such as the smart phone/computer system 20. Thediagnostic message can include, but is not limited to, a summary of theproblem (e.g., fan motor open circuit), instructions detailing how totroubleshoot the problem, an option to schedule a repair specialist tofix the problem and an override command. Then in step 7520, the system14 b stops the operation of the heater 7400 to prevent potential damageto the heater 7400 and the process ends. Alternatively, if the system 14b determines that the measured fan motor current is greater than thepredetermined minimum current threshold, the process proceeds to step7522.

In step 7522, the system 14 b determines whether the measured fan motorcurrent is less than a predetermined maximum current threshold. A fanmotor maximum current threshold can detect whether the fan motor 7412 isdamaged.

In step 7526, the system 14 b transmits a diagnostic message indicativeof a problem with the fan motor 7412 of the system 14 b when the system14 b determines that the measured fan motor current is not less than thepredetermined maximum current threshold. The diagnostic message can be areport, an alert, etc. The diagnostic message can be transmitted to anddisplayed by the heating/cooling system 14 b display or a remote devicesuch as the smart phone/computer system 20. The diagnostic message caninclude, but is not limited to, a summary of the problem (e.g., fanmotor 7412 damaged), instructions detailing how to troubleshoot theproblem, an option to schedule a repair specialist to fix the problemand an override command. Then in step 7528, the system 14 b stops theoperation of the heater 7400 to prevent potential damage to the heater7400 and/or further damage to the fan motor 7412 and the process ends.Alternatively, if the system 14 b determines that the measured fan motorcurrent is less than the predetermined maximum current threshold, thesystem 14 b continues the operation of the heater 7400 in step 7524.

FIG. 77 is a block diagram illustrating components of an embodiment ofthe heating/cooling system 14 b of FIG. 1 for ensuring sufficient waterflow for proper function of a pool heater by measuring water flow ratevia a flow sensor embedded within the pool heater.

A pool heater of a heating/cooling system commonly utilizes a pressureswitch to measure the water flow rate and detect if a filter pump isoperative. As such, the pool heater can be protected from damageincurred by heating water when the water flow rate is too low. However,pressure switches do not measure water flow rate directly and as such,can incorrectly indicate the water flow rate resulting in damage to thepool heater. The ability to accurately measure the water flow rate via aflow sensor allows for the advanced functionality of and enhanceddiagnostics regarding the operation of pool heater and/or aheating/cooling system. As such, the heating/cooling system 14 bprovides for ensuring sufficient water flow for proper function of apool heater by measuring water flow rate via a flow sensor embeddedwithin the pool heater. Specifically, the heating/cooling system 14 candefine at least one predetermined water flow rate threshold which allowsfor protecting a pool heater from the damage incurred by heating waterwhen the water flow rate is too low. Additionally, the heating/coolingsystem 14 b provides a user with enhanced diagnostics regarding theoperation of a pool heater and/or a heating/cooling system.

As shown in FIG. 77 , the heating/cooling system 14 b could include aheater 7400 having a water inlet pipe 7404 a, a water outlet pipe 7404b, a heat exchanger 7402, a flow sensor 7418, a pressure sensor 7419,and a network communication and local control subsystem 12 b (“controlsubsystem 12 b”) including, but not limited to, a processor 22 and amemory 23. Alternatively, the control subsystem 12 b could be a hardwareprocessor including a controller in communication with the memory 23,the flow sensor 7418, and/or the pressure sensor 7419.

The water inlet pipe 7404 a transports water from the pool/spa into theheating/cooling system 14 b via, for example, a pump or via other means.The water passes through the heater 7400 and into the heat exchanger7402. The water outlet pipe 7404 b transports water out from theheating/cooling system 14 b to, for example, the pool or spa. The flowsensor 7418 measures the water flow rate of the water within the inletpipe 7404 a. Alternatively, or in addition to the flow sensor 7418, apressure sensor 7419 can measure a pressure differential between thewater inlet pipe 7404 a and the water outlet pipe 7404 b. Theheating/cooling system 14 b provides for defining at least onepredetermined minimum water flow rate, or pressure differential,threshold which allows for protecting the heater 7400 from the damageincurred by heating water when the water flow rate, or pressure, is toolow.

Referring to FIGS. 1 and 2 , the control subsystem 12 b could include aprocessor 22 in communication with a memory 23 including at least one ofa random-access memory 24 and a non-volatile memory 30. The processor 22provides local processing capability for the control subsystem 12 b. Thenon-volatile memory 30 can store one or more local control programs 30for providing local control of the pool and spa equipment in which thecontrol subsystem 12 b is installed. The processor 22 is incommunication with the flow sensor 7418 and/or pressure sensor 7419 ofthe heater 7400. It is noted that the flow sensor 7418 can be apaddle-wheel flow sensor wherein water flow causes the rotation of apaddle wheel which generates an electrical pulse signal whose frequencyis proportional to the water flow rate. The flow sensor 7418 can also beof a type other than a paddle-wheel and can be a combination devicecomprising a flow sensor and a water temperature sensor. The flow sensor7418 can be connected to and in communication with the heating/coolingsystem 14 b and the control subsystem 12 b via a wired or a wirelessconnection.

The processor 22 may detect changes and/or problems in the performanceof the heater 7400 and control the operation of the heating/coolingsystem 14 b based on a measured water flow rate via the flow sensor 7418relative to at least one predetermined minimum flow rate threshold. Theprocessor 22 can also detect changes and/or problems in the performanceof the heater 7400 and control the operation of the heating/coolingsystem 14 b based on a measured pressure differential between the waterinlet 7404 a and the water outlet 7404 b via the pressure sensor 7419relative to at least one predetermined maximum pressure differentialthreshold. It is noted that the control subsystem 12 b may be affixedto, installed within or installed remotely from the heating/coolingsystem 14 b. The components of the control subsystem 12 b are discussedin more detail above in regards to FIG. 2 .

FIG. 78 is a flowchart illustrating the processing steps carried out bythe heating/cooling system 14 b of FIG. 77 for ensuring sufficient waterflow for proper function of the heater 7400 by measuring the water flowrate via the flow sensor 7418 embedded within the heater 7400, indicatedgenerally at method 7550. In step 7552, the system 14 b receives acommand to heat the water in the pool or spa and ignites and fires theheater 7400. A user may transmit the command via a remote device orterminal (e.g., smart phone/computer system 20 of FIG. 1 ) or via adisplay of the heating/cooling system 14 b to instruct the heatingsystem 14 b to heat the water in the pool or spa. Alternatively, thesystem 14 b may transmit the command due to a predetermined condition.For example, a user can set a condition for commanding theheating/cooling system 14 b to activate the heater 7400 (e.g., engageheating functions) at a predetermined time and/or at a predeterminedtemperature. Those skilled in the art would understand that, in aheating/cooling system or a cooling system, the activation command canalso be a command to cool the water in a pool or spa.

In step 7554, the system 14 b retrieves the minimum flow rate setpointdata for operation of the heater 7400. The setpoint data can be storedin the memory 23 of the heating/cooling system 14 b or in the cloud. Instep 7556, the system 14 b measures the flow rate of the water withinthe water inlet pipe 7404 a via the flow sensor 7418. Then, in step7558, the system 14 b determines whether the measured flow rate isgreater than the minimum flow rate setpoint data threshold. If thesystem determines that the measured flow rate is greater than theminimum flow rate setpoint data threshold, then the system 14 bcontinues operation of the heater 7400 in step 7560. This allows smallerBTU heaters to function at lower water flow rates while still requiringlarger BTU heaters to have higher water flow rates.

Alternatively, if the system determines that the measured flow rate isnot greater than the minimum flow rate setpoint data threshold, theprocess proceeds to step 7562. In step 7562, the system 14 b determineswhether any retries remain for transmitting a command to measure theflow rate via the flow sensor 7418. If at least one retry remains, thesystem 14 b transmits a command to measure the flow rate of the waterwithin the water inlet pipe 7404 a via the flow sensor 7418. However, ifno retries remain, then in step 7564, the system 14 b transmits adiagnostic message indicating insufficient water flow for properfunction of the heater 7400.

The heating/cooling system 14 b provides a user with enhanced diagnosticmessages regarding the operation of the heater 7400 and/or theheating/cooling system 14 b based on the measured flow rate via the flowsensor 7418. For example, the flow sensor 7418 provides the ability todistinguish the difference between a water flow rate that is zero (e.g.,a water flow rate indicating that the filter pump is OFF) and a waterflow rate that is low (e.g., a water flow rate indicating that thefilter pump in ON but that the water flow is too low). As such, theheating/cooling system 14 b can transmit messages to other networkconnected pool or spa equipment such as “more flow needed” or “turn pumpon so water temperature can be checked” to ensure sufficient water flowfor proper function the heater 7400. Additionally, the system 14 b cantransmit the measured water flow rate to other network connectedequipment such as a pool or spa automation system.

The diagnostic message can be a report, an alert, etc. The diagnosticmessage can be transmitted to and displayed by the heating/coolingsystem 14 b display or a remote device such as the smart phone/computersystem 20. The diagnostic message can include, but is not limited to, asummary of the problem (e.g., insufficient water flow rate),instructions detailing how to troubleshoot the problem, an option toschedule a repair specialist to fix the problem and an override command.Then in step 7566, the system 14 b stops the operation of the heater7400 to prevent potential damage to the heater 7400 and the processends.

According to some embodiments of the present disclosure, theheating/cooling system 14 b can ensure sufficient water flow for properfunction of the heater 7400 by measuring the water flow rate via thedifferential pressure sensor 7419 embedded within the heater 7400. Forexample, in step 7555, the system can retrieve a maximum differentialpressure setpoint for heater operation. In step 7557, the systemmeasures the differential pressure between the water inlet and outletpipes. In step 7559, the system determines if the measured differentialpressure is greater than the maximum differential pressure setpoint. Ifa positive determination is made in step 7559, the system proceeds tostep 7562, as described herein. If a negative determination is made instep 7559, the system proceeds to step 7560 and continues operation ofthe heater.

FIG. 79 is a block diagram illustrating components of an embodiment ofthe heating/cooling system 14 b of FIG. 1 for ensuring sufficient gaspressure for proper function of a heater by measuring gas pressure via apressure sensor embedded within the heater.

A gas-fired pool heater requires a minimum gas pressure supplied by agas utility to function properly. If the pool heater has insufficientgas pressure, then the pool heater can fail to ignite, ignite harshly orexhibit a buildup of soot in the pool heater due to improper fuel/airmixture. Therefore, a pool heater of a heating/cooling system iscommonly equipped with a test port that a technician can use to connecta pressure gauge and test for gas pressure. However, gas pressure canvary over time and as such, a point measurement made by a technician maynot be representative of the gas pressure at the time of an ignitionfailure. Therefore, diagnosing a problem with the pool heater pertainingto insufficient gas pressure can be difficult.

The ability to accurately measure gas pressure via a pressure sensorallows for advanced functionality of and enhanced diagnostics regardingthe operation of a pool heater and/or a heating/cooling system. Forexample, the heating/cooling system 14 b can accurately diagnose afailed ignition due to low gas pressure and can also prevent harshignitions and the buildup of soot by monitoring gas pressure. Inaddition, the heating/cooling system 14 b can provide a user withenhanced diagnostic messages regarding the operation of a pool heaterand/or the heating/cooling system 14 b.

As shown in FIG. 79 , the heating/cooling system 14 b could include aheater 7400 having a water inlet pipe 7404 a, a water outlet pipe 7404b, a heat exchanger 7402, an orifice 7420, a valve 7422, a gas line7424, a pressure sensor 7426 and a network communication and localcontrol subsystem 12 b (“control subsystem 12 b”) including, but notlimited to, a processor 22 and a memory 23. Alternatively, the controlsubsystem 12 b could be a hardware processor including a controller incommunication with the memory 23 and the pressure sensor 7426.

The water inlet pipe 7404 a transports water from the pool/spa into theheating/cooling system 14 b via, for example, a pump or via other means.The water passes through the heater 7400 and into the heat exchanger7402. The water outlet pipe 7404 b transports water out from theheating/cooling system 14 b to, for example, the pool or spa. Thepressure sensor 7426 measures the gas pressure within the gas line 7424.Gas enters the heater 7400 via the gas line 7424 and valve 7422. The gasis ignited and provides heat through the orifice 7420. Theheating/cooling system 14 b provides for ensuring sufficient gaspressure for proper function of the heater 7400 by measuring gaspressure within the gas line 7424 via the pressure sensor 7424.Additionally, the heating cooling system 14 b provides a user withenhanced diagnostic messages regarding the operation of the heater 7400and/or the heating/cooling system 14 b.

Referring to FIGS. 1 and 2 , the control subsystem 12 b could include aprocessor 22 in communication with a memory 23 including at least one ofa random-access memory 24 and a non-volatile memory 30. The processor 22provides local processing capability for the control subsystem 12 b. Thenon-volatile memory 30 can store one or more local control programs 30for providing local control of the pool and spa equipment in which thecontrol subsystem 12 b is installed. The processor 22 is incommunication with the pressure sensor 7426 of the heater 7400. It isnoted that the pressure sensor 7426 may also be referred to as apressure transducer, a pressure transmitter, a pressure indicator, apiezometer and a manometer and could be one of an absolute pressuresensor, a gauge pressure sensor, a vacuum pressure sensor, adifferential pressure sensor, a sealed pressure sensor or any other typeof pressure sensing device. The pressure sensor 7426 can be connected toand in communication with the heating/cooling system 14 b and thecontrol subsystem 12 b via a wired or a wireless connection.

The processor 22 may detect changes and/or problems in the performanceof the heater 7400 and control the operation of the heating/coolingsystem 14 b based on a measured gas pressure within the gas line 7424via the pressure sensor 7426 relative to at least one predeterminedminimum gas pressure threshold. It is noted that the control subsystem12 b may be affixed to, installed within or installed remotely from theheating/cooling system 14 b. The components of the control subsystem 12b are discussed in more detail above in regards to FIG. 2 .

FIG. 80 is a flowchart illustrating the processing steps carried out bythe heating/cooling system 14 b of FIG. 79 for ensuring sufficient gaspressure for proper function of the heater 7400 by measuring gaspressure within the gas line 7424 via the pressure sensor 7424 embeddedwithin the heater 7400, indicated generally at method 7570.

In step 7572, the system 14 b receives a command to heat the water inthe pool or spa and ignites and fires the heater 7400. A user maytransmit the command via a remote device or terminal (e.g., smartphone/computer system 20 of FIG. 1 ) or via a display of theheating/cooling system 14 b to instruct the heating system 14 b to heatthe water in the pool or spa. Alternatively, the system 14 b maytransmit the command due to a predetermined condition. For example, auser can set a condition for commanding the heating/cooling system 14 bto activate the heater 7400 (e.g., engage heating functions) at apredetermined time and/or at a predetermined temperature. Those skilledin the art would understand that, in a heating/cooling system or acooling system, the activation command can also be a command to cool thewater in a pool or spa.

In step 7574, the system 14 b retrieves the minimum gas pressuresetpoint data for the operation of the heater 7400. The data can bestored in the memory 23 of the heating/cooling system 14 b or in thecloud. In step 7576, the system 14 b measures the gas pressure of thegas within the gas line 7424 via the pressure sensor 7426. Then, in step7578, the system 14 b determines whether the measured gas pressure isgreater than the minimum gas pressure setpoint data threshold. If thesystem determines that the measured gas pressure is greater than theminimum gas pressure setpoint data threshold, then the system 14 bcontinues operation of the heater 7400 in step 7580.

Alternatively, if the system determines that the measured gas pressureis not greater than the minimum gas pressure setpoint data threshold,then the process proceeds to step 7582.

In step 7582, the system 14 b determines whether any retries remain fortransmitting a command to measure the gas pressure within the gas line7424 via the pressure sensor 7426. If at least one retry remains, thenthe system 14 b transmits a command to measure the gas pressure withinthe gas line 7424 via the pressure sensor 7426. However, if no retriesremain, then in step 7584, the system 14 b transmits a diagnosticmessage indicating insufficient gas pressure for the proper function ofthe heater 7400.

Additionally, the heating/cooling system 14 b provides a user withenhanced diagnostic messages regarding the operation of the heater 7400and/or the heating/cooling system 14 b based on the measured gaspressure within the gas line 7424 via the pressure sensor 7426. Forexample, the pressure sensor 7426 provides the ability to distinguishthe difference between a gas pressure that is zero (e.g., a gas pressureindicating that the gas line is CLOSED) and a gas pressure that is low(e.g., a gas pressure indicating that the gas line is OPEN but that thegas pressure is too low).

The diagnostic message can be a report, an alert, etc. The diagnosticmessage can be transmitted to and displayed by the heating/coolingsystem 14 b display or a remote device such as the smart phone/computersystem 20. The diagnostic message can include, but is not limited to, asummary of the problem (e.g., insufficient gas pressure), instructionsdetailing how to troubleshoot the problem, an option to schedule arepair specialist to fix the problem and an override command. Then instep 7586, the system 14 b stops the operation of the heater 7400 toprevent potential damage to the heater 7400 and the process ends.

FIG. 81 is a block diagram illustrating components of an embodiment ofthe heating/cooling system 14 b of FIG. 1 for setting various thresholdlimits with respect to energy consumption via a graphic user interfaceof the heating/cooling system 14 b and receiving alerts when energyconsumption exceeds the set various threshold limits.

A heater generally consumes a large amount of energy to heat a pooland/or spa. Therefore, a user of a pool and/or spa may only heat thepool and/or spa when necessary. However, a user may inadvertently forgetto turn the heater off after using the pool and/or spa or a third party(e.g., a house guest) may heat the pool and/or spa when the user is awayfrom the pool and/or spa resulting in unexpectedly high energyconsumption and utility bills. The ability to configure a heater of aheating/cooling system to set various threshold limits with respect toenergy consumption via a graphic user interface and to receive alertswhen energy consumption exceeds the set various threshold limits allowsfor responsible use of the heater and minimizing the operation coststhereof.

As shown in FIG. 81 , the heating/cooling system 14 b could include aheater 7400 having a water inlet pipe 7404 a, a water outlet pipe 7404b, a heat exchanger 7402, a graphic user interface 7428, a timingcircuit 7430 and a network communication and local control subsystem 12b (“control subsystem 12 b”) including, but not limited to, a processor22 and a memory 23. Alternatively, the control subsystem 12 b could be ahardware processor including a controller in communication with thememory 23, the graphic user interface 7428 and the timing circuit 7430.

The water inlet pipe 7404 a transports water from the pool/spa into theheating/cooling system 14 b via, for example, a pump or via other means.The water passes through the heater 7400 and into the heat exchanger7402. The water outlet pipe 7404 b transports water out from theheating/cooling system 14 b to, for example, the pool or spa. Thegraphic user interface 7428 allows a user to configure the heater 7400of the heating/cooling system 14 b by setting various threshold limitswith respect to energy consumption. The heating/cooling system 14 bcontrols an operation of the heater 7400 based on the inputs to thegraphic user interface 7428 and the timing circuit 7430 logic.Additionally, the heating/cooling system 14 b provides the user withalerts when energy consumption exceeds the set various threshold limits.

Referring to FIGS. 1 and 2 , the control subsystem 12 b could include aprocessor 22 in communication with a memory 23 including at least one ofa random-access memory 24 and a non-volatile memory 30. The processor 22provides local processing capability for the control subsystem 12 b. Thenon-volatile memory 30 can store one or more local control programs 30for providing local control of the pool and spa equipment in which thecontrol subsystem 12 b is installed. The processor 22 is incommunication with the graphic user interface 7428 and the timingcircuit 7430 of the heater 7400. It is noted that the control subsystem12 b may be affixed to, installed within or installed remotely from theheating/cooling system 14 b. The components of the control subsystem 12b are discussed in more detail above in regards to FIG. 2 .

FIGS. 82-83 are user interface screens 7600 and 7630 generated by theheating/cooling system 14 b of FIG. 81 . Referring to FIG. 82 , theinterface screen 7600 allows a user to configure the settings of theheater 7400. For example, input fields 7602, 7606, 7610 and 7614 allowthe user to set a temperature of the pool or spa for either a gas heateror a heat pump. In addition, input fields 7604, 7608, 7612 and 7616allow the user to set a total run time of the gas heater or the heatpump. The heating/cooling system 14 b can also allow the user torestrict the function of the heater 7400 under certain conditions.According to some embodiments of the present disclosure, theheating/cooling system 14 b can include one or more “adaptive” or“economy” modes, which the user can select, configure, and/or enableusing one or more interface screens (not shown) generated by theheating/cooling system 14 b and displayed on the graphical userinterface 7428. For example, the “adaptive” or “economy” modes canminimize energy consumption while maintaining user comfort byautomatically lowering the temperature setpoint of the pool or spa(thereby reducing energy demand on the heater 14 b) when the ambientoutdoor temperature is warmer and by automatically raising thetemperature setpoint of the pool or spa when the ambient outdoortemperature is colder. The temperature setpoint can be modifiedcontinuously based on a current temperature differential (e.g., thedifference between the current ambient temperature and a user specifiedwater temperature) or the temperature setpoint can be modified once thecurrent ambient temperature crosses one or more predeterminedthresholds. When enabled by the user, the “adaptive” or “economy” modescan increase the efficiency of the heater 14 b by 2% or more. Referringto FIG. 83 , the interface screen 7630 allows a user to configure theheater 7400 to receive an alert when energy consumption exceeds setthreshold limits under certain conditions. For example, input field 7632allows the user to receive an alert when a gas heater runs for more thana set number of total hours in a day. Additionally, input fields 7634,7636 and 7638, 7640 respectively allow the user to receive an alert whenthe pool temperature is set higher than a temperature threshold for morethan a particular number of days in a row for the gas heater and whenthe spa temperature is set higher than a temperature threshold for morethan a particular number of hours in a day for the gas heater.

Similarly, input fields 7642, 7644, 7646, 7648 and 7650 allow the userto receive alerts when energy consumption exceeds set threshold limitsunder certain conditions for the heat pump. For example, input field7642 allows the user to receive an alert when the heat pump runs formore than a set number of total hours in a day. Additionally, inputfields 7644, 7646 and 7648, 7650 respectively allow the user to receivean alert when the pool temperature is set higher than a temperaturethreshold for more than a particular number of days in a row for theheat pump and when the spa temperature is set higher than a temperaturethreshold for more than a particular number of hours in a day for theheat pump.

The alert can be a notification and can be transmitted to and displayedby the heating/cooling system 14 b display or a remote device such asthe smart phone/computer system 20. The alert can include, but is notlimited to, an energy consumption report, an estimated utility billand/or an override command.

FIG. 84 is a block diagram 7770 illustrating a component schematiccapable of being implemented in an embodiment of the heating/coolingsystem 14 b of FIG. 1 for detecting electrical short circuits andresetting circuit protection.

Generally, a pool heater utilizes various switching devices to detectthe proper function thereof. For example, a pool heater can use abimetal switch to protect against over-temperature conditions, an airpressure switch to ensure a fan is functioning properly, a waterpressure switch to ensure a water pump is functioning properly, etc.Typically, a control system of the pool heater passes an amount ofcurrent through these switches to check their operational state (i.e.,the control system polls a status of the switches). However, polling thestatus of these switches in this manner is problematic because a groundshort on the wires thereof can damage the control system, a transformerand/or a fuse of the pool heater.

Therefore, an embodiment of the heating/cooling system 14 b implements amethod of polling the status of switching and/or sensing devices todetect electrical shorts and reset circuit protection by using at leastone polymeric positive temperature coefficient (PPTC) embedding within aheater. A PPTC device is a resettable fuse and is positioned between acontrol module (e.g., a processor) and a switching or sensing device.For example, as shown in FIG. 84 , the PPTC 7434 a is positioned betweenthe processor 22 and an air pressure switch 7436 and the PPTC device7434 b is positioned between the processor 22 and a water pressureswitch 7438. The PPTC devices 7434 a and 7434 b may be directly coupledto the processor 22 or indirectly coupled to the processor 22 via a Vbus7432. As such, the heating/cooling system 14 b can accurately detect aproblem causing high current while simultaneously protecting itself fromdamage. Once the detected electrical short is removed or the defectiveswitching or sensing device is removed, normal operation of theheating/cooling system 14 b can resume.

FIG. 85 is a block diagram illustrating components of an embodiment ofthe heating/cooling system 14 b of FIG. 1 for enabling the simplifiedsetup of replacement components via a removable memory module storingconfiguration data of a heater of the heating/cooling system 14 b.

Pool heater control systems have advanced such that it is necessary toincorporate more setting and configuration data and values into thecontrol system to ensure the proper function of the pool heater.Settings such as the pool heater model number, the serial number, theBTU output, the minimum ambient temperature, the minimum water flowrate, etc. are set by the manufacturer when the pool heater ismanufactured. In contrast, other settings such as a user's favoritetemperature settings, preset run durations, temperature unit, maximumallowed temperature settings, pool size, etc. are set in the field whenthe pool heater is installed. All of these settings must be manuallyre-entered if it becomes necessary to replace a faulty circuit board ofthe pool heater. For example, a memory module in a service replacementcircuit board is specially coded to indicate that it has never beenconfigured for a specific pool heater. Therefore, after being powered ONfor the first time, a user is prompted to enter the setting andconfiguration data and values for the pool heater to ensure that thepool heater functions properly.

As such, the heating/cooling system 14 b enables the simplified setup ofa replacement circuit board via a removable memory module storingconfiguration data of a heater of the heating/cooling system 14 b. Asshown in FIG. 85 , the heating/cooling system 14 b could include aheater 7400 having a water inlet pipe 7404 a, a water outlet pipe 7404b, a heat exchanger 7402, a portable memory module 7440 and a networkcommunication and local control subsystem 12 b (“control subsystem 12b”) including, but not limited to, a processor 22 and a memory 23.Alternatively, the control subsystem 12 b could be a hardware processorincluding a controller in communication with the memory 23 and theportable memory module 7440.

The water inlet pipe 7404 a transports water from the pool/spa into theheating/cooling system 14 b via, for example, a pump or via other means.The water passes through the heater 7400 and into the heat exchanger7402. The water outlet pipe 7404 b transports water out from theheating/cooling system 14 b to, for example, the pool or spa. Theportable memory module 7440 plugs into a circuit board of theheating/cooling system 14 b (not shown) and stores the configurationdata of the heater 7400 of the heating/cooling system 14 b.

Referring to FIGS. 1 and 2 , the control subsystem 12 b could include aprocessor 22 in communication with a memory 23 including at least one ofa random-access memory 24 and a non-volatile memory 30. The processor 22provides local processing capability for the control subsystem 12 b. Thenon-volatile memory 30 can store one or more local control programs 30for providing local control of the pool and spa equipment in which thecontrol subsystem 12 b is installed. The processor 22 is incommunication with the portable memory module 7440 of the heater 7400.The portable memory module 7440 can be connected to and in communicationwith the heating/cooling system 14 b and the control subsystem 12 b viaa wired or a wireless connection. When a replacement circuit board isinstalled, the portable memory module 7440 can instantly configure thereplacement circuit board by being removed from the circuit board andplugged into the replacement circuit board. Additionally, the portablememory module 7740 can be used to store diagnostic event history,enabling the history to stay with the heater 7400 when the replacementcircuit board is installed.

It is noted that the control subsystem 12 b may be affixed to, installedwithin or installed remotely from the heating/cooling system 14 b. Thecomponents of the control subsystem 12 b are discussed in more detailabove in regards to FIG. 2 .

As discussed above, FIGS. 73-85 illustrate components of embodiments ofthe heating/cooling system 14 b of FIG. 1 and processing steps carriedout by the embodiments of the heating/cooling system 14 b. FIG. 1illustrates the overall system of the present disclosure, indicatedgenerally at 10. The system 10 includes, but is not limited to, aplurality of network communication and local control subsystems 12 a-hwhich could be installed in or connected to a plurality of pool and spaequipment 14 a-h, so as to provide network connectivity and remotemonitoring and control of the pool and spa equipment 14 a-h. The pooland spa equipment could include, but is not limited to, a pump 14 a, theheating/cooling system 14 b, a sanitization system 14 c, a waterfeature/miscellaneous subsystem 14 d, a valve actuator/valve position 14e, a pool/spa control system 14 f, a cleaner 14 g and a lighting system14 h.

The control subsystems 12 a-12 h could communicate with each other overa network 16, which could include, but is not limited to, the Internet.The control subsystems 12 a-12 h provide “Internet-of-Things”functionality for the plurality of pool and spa equipment 14 a-14 h. Itis noted that control subsystems 12 a-12 h could further include a “bigdata” subsystem, subsystems for receiving input frommanufacturers/factories, subsystems for receiving external data/input(e.g., data from the Internet), and subsystems for receiving input fromcustomers. Additionally and as discussed above, the control subsystems12 a-12 h could include control logic for allowing each of the pool andspa equipment 14 a-14 h to interact with each other (e.g., to exchangedata and commands for controlling each other), as well as to be remotelycontrolled by another system such as a remote server, a “cloud” basedcontrol system, a remote computer system, a smart device (e.g., smartphone, smart speaker, smart chip embedded in the body), etc., andcombinations thereof. It is noted that, as described herein, theheating/cooling system 14 b may also describe, or be described as, aheater, a cooling system, cooler, or any combination thereof. Each ofthe pool and spa equipment 14 a-14 h can further include a display, suchas a touchscreen, a screen with a touchpad, etc.

Additionally, as can be seen in FIG. 1 , the control subsystems 12 a-12h could also communicate with one or more servers 18, and/or with one ormore smart devices 20 (e.g., a phone, a tablet, a computer system,etc.), via the network 16. Still further, an on-site control processor19 could be in communication with the various systems shown in FIG. 1 .The on-site control processor 19 could be a pool/spa control systeminstalled at the location of a pool or spa, a reduced-functionalitypool/spa control system, or another type of control system.

As discussed below in connection with FIGS. 86-91 , the systems andmethods are discussed with reference to a swimming pool and/or a spa.However, it should be understood that systems and methods of the presentdisclosure can be used with any body of liquid, including but notlimited to, bathtubs, water tanks, etc. It should further be noted thatthe system and methods will be discussed below with reference to aheating system. However, it should be understood that the systems andmethods of the present disclosure can also be used with a cooling systemor a heating/cooling system. As such, examples and embodiments forcooling systems will also be described below.

FIG. 86 is a diagram illustrating components of the heating system 14 bof FIG. 1 of the present disclosure. The heating system 14 b includes aninlet pipe 7812, an outlet pipe 7814, an inlet temperature sensor 7816,an outlet temperature sensor 7818, a network communication and localcontrol subsystem 12 b (“control subsystem 12 b”), described inconnection with FIGS. 1 and 2 , and a heater 7822. The inlet pipe 7812transports water from the pool/spa into the heating system 14 b via, forexample, a water pump or other means. The inlet temperature sensor 7816measures the temperature of the water before the water enters the heater7822. The outlet pipe 7814 transports water out from the heater 7822 to,for example, the pool or spa. The outlet temperature sensor 7818measures the temperature of the water after the water leaves the heater7822. The inlet temperature sensor 7816 and the outlet temperaturesensor 7818 can be one or more of a negative temperature coefficientthermistor, a resistance temperature detector, a thermocouple, asemiconductor-based sensor, a thermometer, or any other type oftemperature sensing device. The inlet temperature sensor 7816 and theoutlet temperature sensor 7818 can be connected to and in communicationwith the heater 7822 and the control subsystem 12 b via a wired or awireless connection. It should be understood that the inlet temperaturesensor 7816 can be positioned anywhere along the inlet pipe 7812, theheater 7822, a pump, or along other inlet components. Further, it shouldbe understood that the outlet temperature sensor 7818 can be positionedanywhere along the outlet pipe 7814, the heater 7822 or along otheroutlet components.

As described in connection with FIGS. 1 and 2 , the control subsystem 12b could include a processor in communication with a memory including atleast one of a random-access memory and a non-volatile memory. Theprocessor provides local processing capability for the control subsystem12 b. The non-volatile memory can store one or more local controlprograms for providing local control of the pool and spa equipment inwhich the control subsystem 12 b is installed. The processor is incommunication with the inlet temperature sensor 7816, outlet temperaturesensor 7818, and the heater 7822.

The processor can detect changes in the performance of the heatingsystem 14 b and control the operation of the heating system 14 b basedon a calculated difference between temperature measurements taken by theinlet temperature sensor 7816 and the outlet temperature sensor 7818. Itis noted that the control subsystem 12 b can be affixed to, installedwithin, or located remotely from the heater 7822. The components of thecontrol subsystem 12 b are discussed in more detail in regards to FIGS.1 and 2 .

The heating system 14 b can further include a display, such as atouchscreen, a screen with a touchpad, etc. The display can be affixedto, installed within or installed remotely from the heater 7822. Thedisplay can receive user input via, for example, the touch screen, akeyboard, a remote or wireless signal, etc. The display can further showdiagnostic issues, messages, instructions, etc.

FIG. 87 is a flowchart illustrating process steps carried out by anembodiment of the system of the present disclosure for detecting animproperly installed heating system, indicated generally at method 7830.In step 7832, the system receives a temperature command. The temperaturecommand can be an instruction to heat the water in the pool or spa. In afirst example, a user sends the temperature command by using a smartdevice (e.g., smart phone), or using a display and/or control buttons onthe heating system 14 b to instruct the heater 7822 to heat the pool. Ina second example, the system transmits the temperature command due to apredetermined condition. For example, the user can set a conditioninstructing the heater 7822 to activate (e.g., engage heating functions)at a predetermined time, at a predetermined temperature, etc. Thoseskilled in the art would understand that, in a heating/cooling system ora cooling system, the temperature command can also be an instruction tocool the water in the pool or spa.

In step 7834, the system measures the inlet water temperature and theoutlet water temperature via the inlet temperature sensor 7816 and theoutlet temperature sensor 7818, respectively. In a first example, thesystem measures the inlet water temperature and the outlet watertemperature upon receiving the temperature command. In a second example,the system measures the inlet water temperature and the outlet watertemperature upon a predetermined amount of time after receiving thetemperature command. The predetermined amount of time can allow for theheating system 14 b to enter a proper operational state, such as a heatexchanger of the heater 7822 heating to an optimal level.

In step 7836, the system determines whether the inlet water temperatureis greater than the outlet water temperature. When the inlet temperatureis greater than the outlet temperature, the system proceeds to step 7838and generates and transmits a diagnostic report. The diagnostic reportcan be a report, a message, an alert, etc. In an example, the diagnosticreport is transmitted to and displayed by the display of the heatingsystem 14 b or the smart device. The diagnostic report can include areport of the issue (e.g., incorrect piping installation), instructionsdetailing how to fix the issue, an option to schedule a repairspecialist, an override command, etc. When the inlet temperature is notgreater than the outlet temperature, the system proceeds to step 7840and executes the temperature command (e.g., activates the heating system14 b).

Those skilled in the art would understand that in a heating/coolingsystem or a cooling-only system, when the temperature command is aninstruction to cool the water, step 7836 can include the systemdetermining whether the inlet water temperature is less than the outletwater temperature. When the inlet temperature is less than the outlettemperature in view of an instruction to cool the system, in step 7838,transmits a diagnostic report. Otherwise, when the inlet temperature isnot less than the outlet temperature in view of an instruction to cool,the system executes the temperature command (e.g., activates the coolingsystem) in step 7840.

FIG. 88 is a flowchart illustrating process steps carried out by anembodiment of the system of the present disclosure for detecting a lowwater flow rate through the heating system 14 b based on measurements ofinlet and outlet water temperatures, indicated generally at method 7850.In step 7852, the system determines that the heater 7822 is activated.In step 7854, the system waits a predetermined amount of time. Forexample, the system can wait 15 seconds. This waiting period allows theheater 7822 to achieve a suitable flow stabilization. Those skilled inthe art would understand that other time periods can also be used andthat different heating systems can require different durations toachieve the suitable flow stabilization. In step 7856, the systemcalculates a temperature rise. For example, the control system 12 bperforms a first temperature measurement at the inlet pipe 7812, asecond temperature measurement at the outlet pipe 7814, and subtractsthe inlet temperature from the outlet temperature to determine thetemperature rise.

In step 7858, the system determines a maximum allowed temperature valuefor the heating system 14 b. In an example, the system can use a lookuptable. The lookup table can include heating system types, BTU/joulesize, piping sizes, capacity, a maximum allowed temperature rise valuefor each type/size, etc. The lookup table can be stored in the system,on the Internet (in the cloud), on a remote server, etc. In step 7860,the system determines whether the value of the measured temperature riseis greater than the value of the maximum allowed temperature rise. Whenthe value of the measured temperature rise is greater than the value ofthe maximum allowed temperature rise, the system proceeds to step 7862,and generates and transmits a diagnostic report, and shuts down theheater. Again, the diagnostic report can include a report of the issue(e.g., low flow rate), instructions detailing how to fix the issue, anoption to schedule a repair specialist, an override command, etc. Thoseskilled in the art would understand that method 7860 can be similarlyapplied to a cooling system, where a temperature drop value iscalculated and compared to a lookup table including a maximum allowedtemperature drop.

Importantly, the processing steps discussed above in connection withFIGS. 87-88 could be carried out remote from the heater, e.g., in one ormore of the devices shown in FIG. 1 . As shown in FIG. 1 , the system 10includes, but is not limited to, a plurality of network communicationand local control subsystems 12 a-12 h (including the control subsystem12 b) which could be installed in or connected to a plurality of pooland spa equipment 14 a-14 h (including the heating system 14 b), so asto provide network connectivity and remote monitoring and control of thepool and spa equipment 14 a-14 h. The subsystems 12 a-12 h (includingthe control subsystem 12 b) are described in greater detail inconnection with FIG. 2 . The subsystems 12 a-12 h could communicate witheach other over the network 16, which could include, but is not limitedto, the Internet. The subsystems 12 a-12 h provide “Internet-of-Things”functionality for the plurality of pool and spa equipment 14 a-14 h. Itis noted that subsystems 12 a-12 h could further include a “big data”subsystem, subsystems for receiving input from manufacturers/factories,subsystems for receiving external data/input (e.g., data from theInternet), and subsystems for receiving input from customers. Asdiscussed above, the subsystems 12 a-12 h could include control logicfor allowing each of the devices 14 a-14 h to interact with each other(e.g., to exchange data and commands for controlling each other), aswell as to be remotely controlled by another system such as a remoteserver, a “cloud” based control system, a remote computer system, asmart device (e.g., smart phone, smart speaker, smart chip embedded inthe body), etc., and combinations thereof as will be discussed ingreater detail below. For example, the subsystems 12 a-12 h could beprogrammed to carry out the processes discussed above in connection withFIGS. 87 and 88 .

Also referring back to FIG. 3 , which is a diagram illustrating varioustypes of control logic in accordance with the present disclosure, forcontrolling various types of pool and spa equipment, it is noted thatthe control logic, indicated generally as pool control logic 70, couldinclude the process steps discussed herein in connection with FIGS. 87and 88 . The control logic 70 could be embodied as programmedinstructions (software code) stored on a non-transitorycomputer-readable medium, and could include pump control logic 84 andheater control logic 80, which could also include the process stepsdiscussed herein in connection with FIGS. 87 and 88 . Such logic couldbe installed locally (e.g., in one or more of the subsystems 12 a-12 h),on a remote server or computer system (e.g., in the server 18 or thesmart phone/computer system 20), in the “cloud,” or in any combinationof such systems shown in FIG. 1 .

FIG. 89 is a diagram illustrating components of another heater system7914 b of the present disclosure. The system 7914 b includes an inletpipe 8012, an outlet pipe 8014, an inlet temperature sensor 8016, anoutlet temperature sensor 8018, a network communication and localcontrol subsystem 7912 b (“control subsystem 7912 b”), a heater 8022, anambient air temperature sensor 8024, and a refrigerant temperaturesensor 8026. The inlet pipe 8012 transports water from the pool/spa intothe heating system 7914 b via, for example, a water pump or other means.The inlet temperature sensor 8016 measures the temperature of the waterbefore the water enters the heater 8022. The outlet pipe 8014 transportswater out from the heater 8022 to, for example, the pool or spa. Theoutlet temperature sensor 8018 measures the temperature of the waterafter the water leaves the heater 8022. The inlet temperature sensor8016, the outlet temperature sensor 8018, the ambient air temperaturesensor 8024, and the refrigerant temperature sensor 8026 can be one of anegative temperature coefficient thermistor, a resistance temperaturedetector, a thermocouple, a semiconductor-based sensor, a thermometer,or any other type of temperature sensing device. The temperature sensors8016, 8018, 8024, and 8026 can be connected to and in communication withthe heater 8022 and the control subsystem 7912 b via a wired or awireless connection. It should be understood that the temperaturesensors 8016, 8018, 8024, and 8026 can be positioned anywhere along theinlet pipe 8012, the outlet pipe 8014, the heater 8022, a pump, or alongother components.

The control subsystem 7912 b can be similar to control subsystem 12 bdescribed herein and could include a processor in communication with amemory including at least one of a random-access memory and anon-volatile memory. The processor provides local processing capabilityfor the control subsystem 7912 b. The non-volatile memory can store oneor more local control programs for providing local control of the pooland spa equipment in which the control subsystem 7912 b is installed.The processor is in communication with the temperature sensors 8016,8018, 8024, and 8026, and the heater 8022.

The processor can detect changes in the performance of the heatingsystem 7914 b and control the operation of the heating system 7914 bbased on a calculated difference between a temperature measurement ofthe inlet temperature sensor 8016 and the outlet temperature sensor8018, a comparison of a temperature measurement of the ambient airtemperature sensor 8024 and a threshold value, and a comparison of atemperature measurement of the refrigerant temperature sensor 8026 and athreshold value. It is noted that the control subsystem 7912 b can beaffixed to, installed within or installed remotely from the heater 8022.The components of the control subsystem 7912 b, as part of thesubsystems 12 a-12 h, are discussed in more detail above in regards toFIG. 2 .

The heating system 7914 b can further include a display, such as atouchscreen, a screen with a touchpad, etc. The display can be affixedto, installed within or installed remotely from the heater 8022. Thedisplay can receive user input via, for example, the touch screen, akeyboard, a remote or wireless signal, etc. The display can further showdiagnostic issues, messages, instructions, etc.

FIG. 90 is a flowchart illustrating process steps carried out by anembodiment of the system of the present disclosure for detectingfrosting conditions in the heater 8022, indicated generally at method8030. In step 8032, the system determines an ambient air temperature.For example, the system uses the ambient air temperature sensor 224 tomeasure the ambient air temperature. In step 8034, the system 7914 bdetermines a refrigerant temperature. For example, the system uses therefrigerant temperature sensor 8026 to measure the refrigeranttemperature.

In step 8036, the system determines whether the refrigerant temperatureis less than a refrigerant temperature threshold. The refrigeranttemperature threshold can be preset by a manufacture, a supplier, auser, or any other party. The refrigerant temperature threshold can bemodified, either remotely or locally. For example, the refrigeranttemperature threshold can be modified via wireless software update(e.g., remotely) or the user can modify the refrigerant temperaturethreshold using the display of the heating system 7914 b (e.g.,locally). Those skilled in the art would understand that the refrigeranttemperature threshold can be modified in response to, refrigerantpressure, refrigerant type, or any other factors affecting therefrigerant. When the refrigerant temperature is not less than therefrigerant temperature threshold, the method 8030 ends.

When the refrigerant temperature is less than the refrigeranttemperature threshold, the system proceeds to step 8038 and determineswhether the ambient temperature is less than an ambient temperaturethreshold. The ambient temperature threshold can also be preset by themanufacture, the supplier, the user, or any other party, and can also bemodified, either remotely or locally. Those skilled in the art wouldunderstand that the ambient temperature threshold can be modified inresponse to, atmospheric pressure, sea level, humidity, or any otherfactors.

When the ambient temperature is less than the refrigerant temperaturethreshold, in step 8040, the system executes a defrost cycle. In anexample, the defrost cycle can include either deactivating the heatingsystem 200 and allowing a heat exchanger of the heater 8022 to thaw outdue to ambient air temperatures, secondary heaters, etc., or engaging arefrigerant reversing valve to heat a heat exchanger surface to thaw outthe heat exchanger. The system can further send an alert or notificationindicating that the heating system 7914 b has been deactivated and thedefrost cycle has been activated. The alert or notification can be setto a user's smart device, to the display of the heating system 7914 b,etc.

When the ambient temperature is not less than the refrigeranttemperature threshold, the system proceeds to step 8042, deactivates theheating system, and transmits a diagnostic report. The diagnostic reportcan be a report, a message, an alert, etc. The diagnostic report caninclude a report of the issue, instructions detailing how to fix theissue, an option to schedule a repair specialist, an override command,etc.

FIG. 91 is a flowchart illustrating process steps carried out by anembodiment of the system of the present disclosure for detecting andcorrecting a stuck reversing valve in a refrigeration system of theheating system 7914 b, indicated generally at method 8050. In step 8052,the system determines whether the heating system 7914 b is in a heatingmode or in a cooling mode. In step 8054, the system measures the inletwater temperature and the outlet water temperature via the inlettemperature sensor 8016 and the outlet temperature sensor 8018,respectively. In step 8056, the system determines whether the reversingvalve is stuck. In a first embodiment, where the heating system 7914 bis in the heating mode, the system determines whether the reversingvalve is stuck when the outlet water temperature is lower than the inletwater temperature. In a second embodiment, where the heating system 7914b is in the cooling mode, the system determines whether the reversingvalve is stuck when the outlet water temperature is greater than theinlet water temperature. If the system determines that the reversingvalve is not stuck, the method 8050 ends.

When the system determines that the reversing valve is stuck, the systemproceeds to step 8058 and cycles the reversing valve for a predeterminedperiod of time. The predetermined period of time can be set by amanufacture, a supplier, the user, or any other party, and can also bemodified, either remotely or locally. In an embodiment, the system candisable the heating system 7914 b prior to cycling the reversing valvefor the predetermined amount of time. This is because, as understood bythose skilled in the art, cycling the reversing valve can be moreeffective when the compressor of the heating system 7914 b is notrunning. In another embodiment, the system can cycle the reversing valvefor a first predetermined amount of time, determine whether thereversing valve is still stuck (using, for example, the method describedin step 8056), and when it is determined that the reversing value isstill stuck, deactivate the heating system 7914 b and cycle thereversing valve for a second predetermined period of time. The firstpredetermined period of time and the second predetermined period of timecan be the same or different values.

In step 8060, the system again determines whether the reversing valve isstuck, using, for example, the method described in step 8056. It shouldbe understood that, if the heating system 7914 b was deactivated tocycle the reversing valve, as described in step 8058, the heating system7914 b can have to be reactivated to determine whether the reversingvalve is stuck. If the system determines that the reversing valve isunstuck, the method 8050 ends. If the system determines that thereversing valve is still stuck, the system proceeds to step 8062,transmits a diagnostic report, and deactivates the heating system 7914b. Again, the diagnostic report can include a report of the issue (e.g.,stuck reversing valve), instructions detailing how to fix the issue, anoption to schedule a repair specialist, an override command, etc.

It is noted that the system 7914 b could be implemented in the networkedpool/spa system, indicated generally at 10, of FIG. 1 . Importantly, theprocessing steps discussed above in connection with FIGS. 90 and 91could be carried out remote from the heater, e.g., in one or more of thedevices shown in FIG. 1 . The system 10 could include the plurality ofnetwork communication and local control subsystems 12 a-12 h (includingthe control subsystem 7912 b) which could be installed in or connectedto a plurality of pool and spa equipment 14 a-14 h (including theheating system 7914 b), so as to provide network connectivity and remotemonitoring and control of the pool and spa equipment 14 a-14 h.Additionally, the subsystems 12 a-12 h could communicate with each otherover a network 16, which could include, but is not limited to, theInternet.

It is also noted that the control logic, indicated generally as poolcontrol logic 70 of FIG. 3 could include the process steps discussedherein in connection with FIGS. 90 and 91 , and could be embodied asprogrammed instructions (software code) stored on a non-transitorycomputer-readable medium, and could include pump control logic 84 andheater control logic 80. Such logic could be installed locally (e.g., inone or more of the subsystems 12 a-12 h), on a remote server or computersystem (e.g., in the server 18 or the smart phone/computer system 20),in the “cloud,” or in any combination of such systems.

Having thus described the disclosure in detail, it is to be understoodthat the foregoing description is not intended to limit the spirit orscope thereof. What is desired to be protected by Letters Patent is setforth in the appended claims.

What is claimed is:
 1. A system for power distribution and control of pool or spa devices, comprising: one or more relays coupled between a breaker panel and one or more pool or spa devices, the one or more relays configured to selectively provide power from the breaker panel to the one or more pool or spa devices to control operation thereof; a processor in communication with the one or more relays, the processor configured to control operation of the one or more relays, the processor thereby controlling operation of the one or more pool or spa devices; and a network communication subsystem operatively coupled to the processor, the network communication subsystem: (i) establishing a network connection between the processor and a communications network; (ii) providing for remote monitoring of the one or more relays over the communications network; and (iii) providing for control of the one or more relays over the communications network from a remote location.
 2. The system of claim 1, wherein the one or more relays comprise one or more high-voltage relays.
 3. The system of claim 1, wherein the one or more relays comprise one or more low-voltage relays.
 4. The system of claim 1, wherein the one or more relays are external to the breaker panel.
 5. The system of claim 1, wherein each of the one or more relays comprises a communications interface configured to establish a network connection with the communications network.
 6. The system of claim 5, wherein the processor controls operation of the one or more relays via the communications network.
 7. The system of claim 1, wherein the one or more pool or spa devices include one or more of a pump, a heating system, a cooling system, a sanitization system, and a lighting system.
 8. The system of claim 1, wherein the processor is in communication with a cloud-based pool or spa controller via the network connection.
 9. The system of claim 8, wherein the network connection is a wired network connection.
 10. The system of claim 8, wherein the network connection is a wireless network connection.
 11. The system of claim 10, wherein the wireless network connection comprises one or more of a Bluetooth, Wi-Fi, ZWave, Zigbee, Thread, or Weave network connection.
 12. The system of claim 1, comprising a pool or spa hub.
 13. The system of claim 12, wherein the processor is in communication with the pool or spa hub via the network connection.
 14. The system of claim 13, wherein the network connection is a wired network connection.
 15. The system of claim
 13. wherein the network connection is a wireless network connection.
 16. The system of claim 15, wherein the wireless network connection comprises one or more of a Bluetooth, Wi-Fi, ZWave, Zigbee, Thread, or Weave network connection.
 17. The system of claim 13, wherein the pool or spa hub establishes a second network connection with a cloud-based controller via the internet.
 18. The system of claim 17, wherein a mobile device is in communication with the cloud-based controller.
 19. The system of claim 18, wherein the mobile device transmits one or more commands to the cloud-based controller for controlling the one or more relays and the cloud-based controller transmits the commands to the processor via the communications network.
 20. The system of claim 1, comprising a local pool or spa automation system.
 21. The system of claim 20, wherein the processor is in communication with the local pool or spa automation system via the network connection.
 22. The system of claim 21, wherein the network connection is a wired network connection.
 23. The system of claim
 21. wherein the network connection is a wireless network connection.
 24. The system of claim 23, wherein the wireless network connection comprises one or more of a Bluetooth, Wi-Fi, ZWave, Zigbee, Thread, or Weave network connection.
 25. The system of claim 1, wherein the processor of the breaker panel contains pool or spa control logic and controls operation of the one or more pool or spa devices.
 26. The system of claim 20, wherein the local pool or spa automation system contains pool or spa control logic and controls operation of the one or more pool or spa devices via the processor.
 27. The system of claim 1, further comprising a data connection established between the processor and the one or more pool or spa devices. 